The Autodidacts

Exploring the universe from the inside out

It’s 2026 and LibreOffice Calc still can’t parse JSON API responses without a plugin

I check every year or so

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.

Spreadsheets, though unhip, are very, very useful.

The 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.

So 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.

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?

Well, 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.

Helpful users have developed workarounds, but none of them appear reliable, or actively maintained.

There 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:

## How to use \n Sorry, Dont use. \n =jsonparse("http://some-funcy-api",key.key.key)

What am I to make of this?

There’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.

This 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.

Then 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!

There 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.

If any LibreOffice developers read this post:

  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.

  2. If you have time, please hit “Reply by email” below this post, and clarify whether:

    a. this feature would be really hard to build, or
    b. this feature isn’t needed because of $WORKAROUND, or
    c. it’s a matter of principle because XML is objectively better than JSON

… and I’ll update this post for the benefit of other people with the same question.

Sign up for updates

Join the newsletter for curious and thoughtful people.
No Thanks

Great! Check your inbox and click the link to confirm your subscription.