jsonecho

JSON to C++

Plak een JSON-voorbeeld en krijg er C++-types voor.

De tool wordt geladen...

Zo gebruik je JSON to C++

  1. Plak een representatief JSON-voorbeeld, bij voorkeur een met alle optionele velden ingevuld.
  2. Stel de naam van het roottype in en bepaal of je ook hulpcode wilt of alleen types.
  3. Kopieer de gegenereerde C++-code naar je project.

Over JSON to C++

Modelklassen met de hand schrijven voor een grote JSON-payload is saai en daar sluipen typefouten in. Plak hier een voorbeeld en de generator leidt de structuur af: welke velden er zijn, welke objecten zijn, welke arrays en welk type elke waarde heeft. De uitvoer bestaat uit structs in een quicktype-namespace, met from_json- en to_json-functies voor de nlohmann/json-bibliotheek.

De uitvoer vereist de nlohmann/json-bibliotheek met één header, plus een klein hulpblok voor optionele waarden dat in de uitvoer is opgenomen. Alles draait in je browser, dus je voorbeeldgegevens blijven op je computer.

De gegenereerde code gebruiken

Neem de nlohmann json-header op en gebruik dan auto root = nlohmann::json::parse(text).get<quicktype::Root>();.

Optionele leden gebruiken std::shared_ptr<T> en zijn null wanneer de sleutel ontbreekt.

Veelgestelde vragen

Waarvan hangt de gegenereerde C++-code af?

De uitvoer bestaat uit structs in een quicktype-namespace, met from_json- en to_json-functies voor de nlohmann/json-bibliotheek.

Hoe parseer ik JSON met het resultaat?

Neem de nlohmann json-header op en gebruik dan auto root = nlohmann::json::parse(text).get<quicktype::Root>();.

Hoe worden optionele en ontbrekende velden behandeld?

Optionele leden gebruiken std::shared_ptr<T> en zijn null wanneer de sleutel ontbreekt.

Kijkt de generator naar meer dan één record?

Hij kent alleen wat in je voorbeeld staat. Ontbreekt een veld in je voorbeeld, dan verschijnt het niet in de types, en is een waarde in je voorbeeld null, dan is het type onbekend. Plak een voorbeeld waarin zoveel mogelijk velden zijn ingevuld, of plak een array met meerdere verschillende records.

Wordt mijn JSON naar een server gestuurd?

Nee. De generator wordt de eerste keer dat je hem gebruikt naar je browser gedownload, ongeveer 1 MB, en alles draait lokaal.

Meer in Data naar klasse

Alle tools →