{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreid6u255r2q2dd73tngdsvfsgu3vtsyufxip6lufg4ux7m6wvoa4da",
"uri": "at://did:plc:fuaxi56ej27ymlesklypt3ar/app.bsky.feed.post/3mcsvxh7orjo2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreiack4omhrmy63cuul6cu7ulyhwohiwtg2vbtj3npeimlaucirlooy"
},
"mimeType": "image/png",
"size": 90577
},
"description": "I check every year or so",
"path": "/parse-filter-json-api-responses-in-libreoffice-calc/",
"publishedAt": "2026-01-20T00:34:26.000Z",
"site": "https://www.autodidacts.io",
"tags": [
"100DaysToOffload",
"View more posts in this series.",
"Cloudflare reports",
"https://github.com/DmytroBazunov/LibreOfficeGetRestPlugin",
"backup",
"this defunct plugin",
"https://github.com/arachan/parsejson",
"a bug report (#113974) from nine years ago",
"a follow-up issue (#168860)",
"Librario.dev",
"Kohei Yoshida"
],
"textContent": "****Note:**** this post is part of #100DaysToOffload, a challenge to publish 100 posts in 365 days. These posts are generally shorter and less polished than our normal posts; expect typos and unfiltered thoughts! View more posts in this series.\n\n\n\n\nSpreadsheets, though unhip, are very, very useful.\n\nThe best open source spreadsheet software I know of is LibreOffice Calc. In most ways, it seems to be as good as Microsoft Excel and Google Sheets.\n\nSo it is with the utmost respect to the hardworking and largely unpaid developers that I loudly complain about the one feature I need that it _doesn’t_ have.\n\n**It still can’t parse JSON.** I find this bonkers. There’s the `=WEBSERVICE()` function for fetching data from APIs. There’s the `=FILTERXML()` function for parsing the response … but only if the response is XML. And what percentage of API responses are XML in the year 2026 AD?! Like, _none?_\n\nWell, almost none of the APIs that _I_ use. Cloudflare reports a 97:3 JSON to XML ratio. However, since this feature hasn’t been fast-tracked, obviously XML parsing is enough for LibreOffice’s core userbase.\n\nHelpful users have developed workarounds, but none of them appear reliable, or actively maintained.\n\nThere is a Java plugin with a typo in the description that hasn’t been updated in 12 years, that has saved a lot of people: https://github.com/DmytroBazunov/LibreOfficeGetRestPlugin. Do I trust this plugin? Or, there’s a backup of this defunct plugin in a GitHub Gist. Or, one that was updated seven years ago (https://github.com/arachan/parsejson), which has an ominous Haiku-like call and response at the end of the README:\n\nWhat am I to make of this?\n\nThere’s a bug report (#113974) from nine years ago. The developers added the ability to open _local_ JSON files in 2025, and considered the issue solved. Users begged to differ, and a follow-up issue (#168860) was created.\n\nThis is not an idle complaint. I was planning to write a different article today, one about how to enrich reading list data in LibreOffice Calc by pulling data from the very promising Librario.dev _JSON_ API.\n\nThen I went down an old and smelly rabbit hole that I go down about once a year (last time, it was when I was trying to use the Google Books API to do the same thing), and found that nothing had changed. Boo hoo!\n\nThere are hacks I could use. Cross my fingers and install the plugin. Pull in the data with Python and convert it to XML or CSV. If the length of the JSON values never changed I could even cut up the response with Calc search and substring functions. But I’m not looking for a hack. I’m looking for a solution.\n\nIf any LibreOffice developers read this post:\n\n 1. Thanks for making a good piece of software that’s used by tonnes of people, and giving it away for free, and putting up with whiny internet randos like me.\n\n 2. If you have time, please hit “Reply by email” below this post, and clarify whether:\n\na. this feature would be really hard to build, or\nb. this feature isn’t needed because of $WORKAROUND, or\nc. it’s a matter of principle because XML is objectively better than JSON\n\n\n\n\n… and I’ll update this post for the benefit of other people with the same question.\n\n* * *\n\n**Update 2026-02-005:** Long-time LibreOffice contributor and Orcus maintainer Kohei Yoshida came across this article and took the time to answer my questions by email, and gave me permission to quote the answers here:\n\nFirst, I am involved in the LibreOffice project, but I'm just an individual, and I by no means represent the entire project. So, what I tell you is just my opinion and view.\n\nWith that out of the way, here are my answers to what you asked:\n\n> a. this feature would be really hard to build, or\n\nNot trivial, but we do have some code we could re-use (from the orcus library I maintain) to implement it. The cell function itself is not the hardest part, but adding a new function involves making changes to the ODF spec to allow loading and saving. That part may involve some specification writing etc that some (many?) people find a bit intimidating. Also, if this cell function tends to get used in many cells, then we need to be careful about the performance impact of the function. If it is used in only a few cells in the document, it may not be a big deal, but once the function is there, user may starts to copy-n-paste it to million cells to cause some chaos performance-wise... 😉 Another thing to watch out for is if other spreadsheet applications already have a similar function, we need to keep our own implementation close in order to minimize the interoperability pain. So some amount of competitive analysis should be done before jumping on to implement it.\n\n> b. this feature isn’t needed because of $WORKAROUND, or\n\nNot really. Developers have different priorities. Those who are affiliated with a company are typically prioritizing their clients, and if none of their clients ask for this functionality then it won't get prioritized. Speaking for myself, I am technically also affiliated with one such company, but I also prioritize my own tasks. But I do this as a side hassle now, and I only have very limited time & I tend to prioritize other areas of the codebase.\n\n> c. it’s a matter of principle because XML is objectively better than JSON\n\nAbsolutely not. Both are important in my opinion, and I'm fully aware that JSON is very important in today's cloud-centric environment.\n\nHTH,\n\nKohei",
"title": "It’s 2026 and LibreOffice Calc still can’t parse JSON API responses without a plugin",
"updatedAt": "2026-01-20T00:36:06.419Z"
}