Convertitore JSON in C++ — Genera struct
Converti JSON in struct o classi C++ online con from_json e to_json di nlohmann/json, campi std::optional e namespace. Gratis, istantaneo e privato nel browser.
🔒 Funziona interamente nel tuo browser — nulla viene caricatoGenera tipi C++ dal JSON
C++ non ha una reflection integrata, quindi mappare il JSON sui propri tipi significa di solito scrivere una struct e poi una coppia di funzioni di serializzazione per ogni oggetto del payload. Questo convertitore da JSON a C++ genera entrambe a partire da un esempio. Ogni oggetto JSON diventa una struct (o una classe con getter e setter), le chiavi diventano membri in snake_case, gli oggetti annidati diventano tipi a sé stanti, gli array diventano std::vector<T>, gli interi diventano int64_t, i numeri con parte frazionaria diventano double e i campi assenti o null in una parte dell'esempio diventano std::optional<T>. Tutto viene racchiuso nel namespace scelto ed emesso come un unico header protetto da #pragma once.
L'inferenza dei tipi è affidata a quicktype, che unisce tutti gli elementi di ogni array prima di scegliere un tipo. Un campo presente solo in alcuni elementi viene comunque catturato come opzionale, quindi il parsing della risposta completa non genera eccezioni per una chiave mancante.
Integrazione con nlohmann/json
L'header generato è pensato per nlohmann/json, la libreria JSON più diffusa per il C++ moderno. Per ogni tipo definisce gli overload from_json e to_json che riportano i membri alle chiavi JSON originali, più piccoli helper per i valori opzionali. Una volta disponibile json.hpp, leggere un documento richiede una sola chiamata a nlohmann::json::parse(text).get<Root>(), mentre riscriverlo è nlohmann::json j = value;. Attiva Types only se ti servono solo le dichiarazioni — per esempio da usare con un altro serializzatore — e Use Boost se la tua toolchain non può usare C++17.
Consigli per il codice di produzione
Incolla un esempio completo con più elementi negli array e i campi opzionali compilati, così i tipi risultano accurati. Gli array vuoti e i null ricadono su nlohmann::json, che di solito conviene sostituire. Rinomina il tipo radice in base al tuo dominio, imposta un namespace adatto al progetto ed esegui clang-format sul risultato. Controlla la larghezza degli interi, valuta enum class per le stringhe con un insieme fisso di valori e ricorda che le stringhe data-ora restano std::string, così puoi analizzarle con la libreria che preferisci. Tutta l'elaborazione avviene in locale, quindi i payload interni restano sul tuo computer.
Come usare
- Incolla il JSONIncolla un documento JSON oppure clicca su Load sample.
- ConfiguraImposta il nome del tipo radice, il namespace, lo stile struct o classe e il supporto agli opzionali.
- Aggiungi l'headerCopia il codice o scarica un file .hpp e includilo accanto a json.hpp.
Domande frequenti
Quale libreria JSON usa il codice generato?
from_json e to_json, quindi nlohmann::json::parse(text).get<Root>() funziona subito.Quale standard C++ è richiesto?
std::optional. Attiva Use Boost per usare invece boost::optional se sei fermo a uno standard più vecchio.