I just started using Bubble today to build a quick AI-powered tool where a user sends a prompt → OpenAI returns a structured JSON → Bubble displays it.
OpenAI sends back the expected JSON structure — query, explanation, chat_title — but because the data is wrapped in a nested content field, Bubble treats it as plain text instead of structured JSON.
I was surprised to learn that Bubble still doesn’t support parsing a JSON string into usable fields without hacks. :format as JSON doesn’t exist. All we get is :formatted as JSON-safe, which is not what anyone building an AI tool needs.
I tried all the workarounds:
find & replace gymnastics
Regex hacks
Toolbox + Run JavaScript (which works but is clunky)
Considering backend workflows now just to parse JSON
Honest feedback: In 2025, where nearly every modern app connects to an LLM or external API returning JSON — how does Bubble not have native JSON parsing? It’s such a fundamental building block for working with AI tools.
I love how fast Bubble lets me build visually, but hitting this wall on day 1 makes me wonder how Bubble’s team is thinking about AI-era development. Surely someone at Bubble has used OpenAI with their own product?
Please tell me I’m missing something — or that this feature is at least on the roadmap.
This is the exact sort of thing bubble will never admit to because it’s so basic that it’s a joke. How can bubble be talking about scalability when they can’t even handle nested json fields?
No, APIs that use the OpenAI schema return JSON as a string which Bubble has a hard time converting back into JSON.
@goldy yeah, call your own backend workflow that takes a ‘text’ parameter and returns the text as application/json from the API. Call it through API Connector.
There’s no bug or issue here. This is a string… that contain a JSON, but this is not a JSON itself. Bubble is not in fault here. Any script would need a “double” parsing of the JSON response. So any solutions, including in Bubble, will need two steps. One to receive the API response and one to parse convert the string and read the JSON.
@Jici - Totally agree that it’s technically a string that contains JSON — no argument there. And yes, in code (like JS or Python), you’d just double-parse it.
But here’s the thing: this is not some rare edge case. OpenAI and other LLM APIs frequently return structured content inside strings — and that’s by design. If you’re building any kind of AI-powered app today, you’re almost guaranteed to run into this pattern.
In most environments, parsing that second layer is a one-liner. I tried the loveable openAI integration and it worked right away, but In Bubble? It takes a plugin (like Toolbox), backend workflows, or some regex gymnastics — which feels excessive for something this fundamental.
So while I get that it’s not a bug, it’s definitely a missing core feature for modern app development. If Bubble wants to support AI builders properly in 2025, we really need native support to parse a JSON string into usable fields. Just having a :parse as JSON operator would be a game-changer.
I will disagree as you are in a nocode world, not low code.
To be able to use as a visual editor, you need to parse it in a known structure. This is what Bubble do with API connector by creating an API type with a specific structure that can be use after in expression composer.
To solve that, Bubble would need to allow us to create a custom type with a defined structure. This is what most advanced Bubbler do by creating API Call that will have the expected JSON structure so we can use it in Bubble. Is not as simple as just add a :parse as JSON function like @goldy or you suggest.
However, Bubble could make a huge step by really allowing us to set a key in API connector as a API Type like the dropdown allow (but doesn’t work from what I know). This have been requested too in plugins editor…