Cos'è JSON?
JSON è una rappresentazione basata su testo leggera per l'archiviazione e il trasferimento di dati strutturati in modo organizzato. I dati JSON sono rappresentati sotto forma di elenchi ordinati e coppie chiave-valore. JSON sta per JavaScripto ohoggetto nootazione. Come indica il nome completo, deriva da JavaScript. Tuttavia, i dati JSON sono supportati nella maggior parte dei linguaggi di programmazione più diffusi.
Viene spesso utilizzato per trasferire i dati dal server a una pagina web. È molto più semplice e pulito rappresentare i dati strutturati in JSON rispetto a XML.
Regola di sintassi JSON
Ecco le regole di sintassi JSON:
- I dati JSON devono essere sempre sotto forma di coppie chiave-valore.
- I dati JSON sono separati da virgole.
- Una parentesi graffa viene utilizzata per rappresentare l'oggetto JSON.
- Una parentesi quadra viene utilizzata per rappresentare un array JSON.
Che cosa sono i dati JSON??
I dati JSON sono rappresentati sotto forma di coppie chiave-valore. È simile a un dizionario o a un hash in altri linguaggi di programmazione.
“Nome” : “Drake”
Questo è un esempio di dati JSON semplici. La chiave qui è "Nome" e "Drake" è il valore corrispondente. La chiave, io.e., “Nome” e il valore, i.e., "Drake" sono separati da due punti.
Estensione file JSON
I dati JSON sono normalmente archiviati nel file con estensione “.json”. Ad esempio, per memorizzare i dati del dipendente, puoi semplicemente denominare il file come "dipendente".json'. Questo sarebbe un semplice file di testo. Puoi quindi aprire questo file JSON in uno dei tuoi editor di testo preferiti.
Oggetto JSON
L'oggetto JSON non è altro che i dati JSON racchiusi tra parentesi graffe. Ecco un oggetto JSON di esempio:
“Nome”: “Drake”,
“ID dipendente”: “23547a”,
“Telefono”: “23547”,
“Dipartimento”: “Finanza”
Un oggetto JSON può contenere più dati JSON. Ogni dato JSON è separato da una virgola. I dati JSON sono rappresentati come coppie chiave-valore. La chiave, io.e., “Nome” e il valore, i.e., "Drake" sono separati da due punti. Nell'esempio sopra, ci sono quattro coppie chiave-valore. La prima chiave è “Nome”; "Drake" è il valore corrispondente per esso. Allo stesso modo, "IDImpiegato", "Telefono" e "Dipartimento" sono gli altri tre tasti.
Array JSON
Un array JSON può contenere diversi oggetti JSON separati da virgole. L'array JSON è racchiuso tra parentesi quadre. Diamo un'occhiata a un esempio di un array JSON:
"Studenti":["firstName":"Sean", "lastName":"Brown",
"firstName":"Drake", "lastName":"Williams",
"firstName":"Tom", "lastName":"Miller",
“nome”:”Pietro”, “cognome”: “Johnson”
]
Questo è un esempio di un array JSON. Qui, "Studenti" è racchiuso tra parentesi quadre, i.e., array e contiene quattro oggetti JSON. Ciascuno di questi oggetti è rappresentato sotto forma di coppie chiave-valore ed è separato da una virgola.
Un file JSON di esempio
Ora, poiché abbiamo compreso i dati JSON, gli oggetti JSON, l'array JSON, diamo un'occhiata a un esempio di un file JSON:
“firstName”: “Sean”,
“cognome”: “Marrone”,
“ID studente”: 21453,
“Dipartimento”: “Scienze informatiche”.",
“Soggetti”:[“Matematica”, “Fisico”, “Chimica”]
Analisi delle librerie in C++:
Non esiste una soluzione nativa per l'analisi dei dati JSON in C++. Tuttavia, ci sono diverse librerie per analizzare i dati JSON in C++. In questo articolo, esamineremo le due librerie più popolari per analizzare i dati JSON in C++. Ecco i collegamenti GitHub per l'analisi dei dati JSON:
- https://github.com/nlohmann/json
- https://github.com/Tencent/rapidjson/
Potresti voler scaricare queste librerie per essere in grado di eseguire gli esempi mostrati di seguito.
Esempi
Ora abbiamo una conoscenza di base dei dati JSON, degli oggetti, degli array e delle librerie di analisi disponibili. Diamo ora un'occhiata a un paio di esempi per analizzare i dati JSON in C++:
- Esempio 1: analizza JSON in C++
- Esempio 2: analizzare e serializzare JSON in C++
- Esempio 3: analizza JSON in C++
Per l'Esempio-1 e l'Esempio-2, faremo uso della libreria “nlohmann”. Nel caso dell'Esempio 3, utilizzeremo la libreria “RapidJSON”.
Esempio 1: analizza JSON in C++
In questo programma di esempio, dimostreremo come accedere ai valori dei dati JSON in C++.
#includere#include "json.hp"
usando json = nlohmann::json;
intero principale()
// jdDipendenti
json jdDipendenti =
"firstName","Sean",
"lastName","Marrone",
"ID studente",21453,
"Dipartimento","Scienze informatiche."
;
// Accedi ai valori
std::string fName = jdDipendenti.value("firstName", "ops");
std::string lName = jdDipendenti.value("cognome", "ops");
int sID = jdDipendenti.valore("IDStudente", 0);
std::string dept = jdDipendenti.value("Dipartimento", "ops");
// Stampa i valori
std::cout << "First Name: " << fName << std::endl;
std::cout << "Last Name: " << lName << std::endl;
std::cout << "Student ID: " << sID << std::endl;
std::cout << "Department: " << dept << std::endl;
restituisce 0;
Esempio 2: analizzare e serializzare JSON in C++
In questo programma di esempio, vedremo come analizzare e serializzare JSON in C++. Stiamo usando "json::parse()" per analizzare i dati JSON.
#includere#include "json.hp"
#includere
usando json = nlohmann::json;
intero principale()
// Ecco un testo JSON
carattere testo[] = R"(
"Libro":
"Larghezza": 450,
"Altezza": 30,
"Titolo": "Ciao mondo",
"isBiography": false,
"NumOfCopies": 4,
"ID libreria": [2319, 1406, 3854, 987]
)";
// Analizziamo e serializziamo JSON
json j_complete = json::parse(testo);
std::cout << std::setw(4) << j_complete << std::endl;
Esempio 3: analizza JSON in C++
Ora dimostreremo come analizzare la stringa JSON usando la libreria RapidJSON. RapidJSON è stato originariamente ispirato da RapidXML. In questo programma di esempio, stiamo analizzando una stringa JSON in DOM. Abbiamo dichiarato "mydoc" di tipo "Document" e quindi utilizzando il "mydoc.parse()” per analizzare la stringa JSON.
#includere#include "rapidjson/writer.h"
#include "rapidjson/document".h"
#include "rapidjson/stringbuffer.h"
utilizzando lo spazio dei nomi rapidjson;
intero principale()
const char* json = ""firstName":"Sean","lastName":"Brown","empId":21453,
"dipartimento": "Computer Sc."";
// Analizza la stringa JSON in DOM
Documento miodoc;
il mio dottore.Analizza(json);
// DOM in stringa
Buffer StringBuffer;
scrittore
il mio dottore.Accetta (scrittore);
// Stampa l'output
std::cout << buffer.GetString() << std::endl;
restituisce 0;
Conclusione
In questo articolo, abbiamo discusso brevemente i dati JSON, l'oggetto, l'array e la sintassi. Come sappiamo, non esiste una soluzione nativa per l'analisi dei dati JSON in C++; abbiamo usato due diverse librerie per analizzare i dati JSON in C++. Abbiamo esaminato tre diversi esempi per dimostrare il meccanismo di analisi dei dati JSON in C++. Rispetto alla libreria "nlohmann", RapidJSON è piccolo, veloce e compatibile con la memoria.