Plak C links en klik op "Convert" — wij maken er JSON vanPlak C code

Wat deze tool doet

Als je ooit een JSON payload nodig hebt gehad die een C struct spiegelt — voor een test van een met gcc gebouwde service, een embedded device config, of een stukje docs — ken je de drill: cJSON erin trekken, glue code per field schrijven, rebuilden, debuggen. Plak het C hier en krijg valide JSON terug zonder een Makefile aan te raken. Of het nu één designated initializer is, een header met meerdere structs, of iets met nested types en arrays — zelfde resultaat: een schoon JSON document met elk field intact.

De converter snapt hoe C-waarden daadwerkelijk serializen. int, long, size_t, float en double worden allemaal JSON numbers. char arrays en string literals worden JSON strings. bool uit stdbool.h wordt true/false. Fixed arrays (int items[3]) worden JSON arrays met de juiste lengte. Nested structs — een Address in een Order, bijvoorbeeld — klappen uit naar nested JSON objects. Het gedrag volgt de C language reference.

C99 designated initializers (.field = value) worden volledig ondersteund — dat is vandaag de dag de normale manier waarop struct-literals in echte code geschreven worden. typedef aliases worden opgelost, en enum-waarden komen eruit als numerieke waarde of symbol name, afhankelijk van de context. union-types serializen de actieve member. Pointer members naar NULL worden JSON null; anders wordt de waarde waarnaar gewezen wordt uitgeklapt. Plak meerdere structs tegelijk en elke wordt een top-level key in de output.

Hoe je het gebruikt

Drie stappen. Werkt hetzelfde voor een initializer van twee regels als voor een hele header met twintig typedefs.

1

Plak je C (of laad het voorbeeld)

Drop je C zoals het is in de linker editor. Een struct-definitie, een typedef, een designated initializer, meerdere structs, of nested arrays — allemaal prima. Klik op Load Sample om eerst een realistisch voorbeeld te zien.

Je hoeft #include-directives of compiler-specifieke attributes niet weg te halen. Laat de ISO C syntax staan — de parser regelt het. Zowel C89 als modern (C11/C17/C23) werken.

2

Druk op Convert

Klik de groene Convert knop. De tool leest het C, loopt elke struct door, klapt de initializers uit, en spuugt het JSON in één pass uit. Er verschijnt een loading indicator terwijl het loopt.

3

Kopieer de JSON

Het rechterpaneel vult zich met ingesprongen JSON. Kopieer het in je HTTP client, embedded firmware config, test fixture, of README. Dat is de hele loop — geen build step.

Wanneer dit echt uitkomt

Embedded config & firmware

Je hebt een device config struct in C en je hebt een JSON-versie nodig voor een REST endpoint of een provisioning tool. Plak de struct, pak de JSON, ship.

API request payloads

Een C service die een third-party API wrapt. Plak de request struct, krijg JSON die je met curl kunt testen voor je cJSON in productie bedradt.

Unit test fixtures

Zet de designated initializers uit je unit tests om naar JSON seed files voor integration tests of golden-file vergelijkingen.

Docs die met de code matchen

Genereer JSON-voorbeelden voor een README of protocol doc rechtstreeks uit je echte structs, dan blijft de documentatie in sync met het header file.

Veelgestelde vragen

Heb ik cJSON of Jansson nodig?

Nee. Deze tool draait server-side en compileert je code niet — je krijgt JSON zonder een serialization library erin te trekken. Als je een runtime-optie wilt, is cJSON de gebruikelijke keus; Jansson is ook een goede.

Begrijpt het designated initializers en typedefs?

Ja. C99 designated initializers (.field = value) worden volledig ondersteund, en typedef aliases worden teruggebracht naar de onderliggende struct. Nested designated initializers klappen uit op dezelfde manier als een compiler ze zou layouten.

En arrays, pointers, en NULL?

Fixed-size arrays worden JSON arrays met het juiste aantal elementen. Pointer members die NULL zijn worden JSON null; anders wordt de waarde waarnaar gewezen wordt uitgeklapt. Arrays of structs werken hetzelfde — elk element is een nested JSON object.

Hoe worden enums en unions afgehandeld?

enum-waarden komen eruit als symbol name of als numerieke waarde, afhankelijk van de context. union-types serializen de momenteel actieve member. Bitfields (unsigned flags : 4) worden numbers.

Wordt mijn code opgeslagen?

Je code wordt naar de backend gestuurd voor conversie en wordt niet bewaard — we loggen de payload niet. Als de code echt gevoelig is (embedded firmware met secrets, interne protocoldetails), loop het dan even door voor je het plakt.

En als het C macro's of compiler extensions heeft?

Macro's die naar een waarde uitklappen werken; function-like macro's die echt logica doen worden als opaque behandeld en als null uitgevoerd in plaats van het hele ding te laten crashen. GCC- en MSVC-attributes (__attribute__, __declspec) worden getolereerd en genegeerd.

Andere tools die je kunt gebruiken

C naar JSON is één stukje van de puzzel. Deze passen er goed bij: