<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Json on René Zander | AI Automation Consultant</title><link>https://renezander.com/tags/json/</link><description>Recent content in Json on René Zander | AI Automation Consultant</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 25 Mar 2026 09:00:00 +0100</lastBuildDate><atom:link href="https://renezander.com/tags/json/index.xml" rel="self" type="application/rss+xml"/><item><title>Claude API Structured Output: Three Patterns for Guaranteed JSON</title><link>https://renezander.com/blog/claude-api-structured-output/</link><pubDate>Wed, 25 Mar 2026 09:00:00 +0100</pubDate><guid>https://renezander.com/blog/claude-api-structured-output/</guid><description>&lt;p>If you come from the OpenAI SDK, you are used to &lt;code>response_format: { type: &amp;quot;json_object&amp;quot; }&lt;/code> or strict JSON schema mode. You pass a schema, OpenAI enforces it at the decoder level, you get parseable JSON or an error. Simple.&lt;/p>
&lt;p>Claude does not have that. There is no &lt;code>response_format&lt;/code> flag, no strict schema decoder, no JSON mode toggle. If you ask Claude nicely for JSON in the prompt, it will usually comply. &amp;ldquo;Usually&amp;rdquo; is not a word I want in production. I run ten AI agents as cron scripts on a Debian VPS. Every one of them parses Claude output into typed objects downstream. One unescaped quote in a string field will take down the pipeline at 06:30 while I am asleep.&lt;/p></description></item></channel></rss>