C++

Come analizzare JSON in C++

Come analizzare JSON in C++
L'intenzione di questo tutorial è comprendere i dati JSON e come analizzare i dati JSON in C++. Discuteremo i dati JSON, Object, Array, sintassi JSON e quindi esamineremo diversi esempi di lavoro per comprendere il meccanismo di analisi dei dati JSON in C++.

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:

  1. I dati JSON devono essere sempre sotto forma di coppie chiave-valore.
  2. I dati JSON sono separati da virgole.
  3. Una parentesi graffa viene utilizzata per rappresentare l'oggetto JSON.
  4. 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:

  1. https://github.com/nlohmann/json
  2. 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++:

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 scrittore (buffer);
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.

Rimappa i pulsanti del mouse in modo diverso per software diversi con X-Mouse Button Control
Forse hai bisogno di uno strumento che possa cambiare il controllo del tuo mouse con ogni applicazione che utilizzi. In questo caso, puoi provare un'a...
Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...