Hva er JSON?
JSON er en lett tekstbasert representasjon for lagring og overføring av strukturerte data på en organisert måte. JSON-dataene er representert i form av bestilte lister og nøkkelverdipar. JSON står for JAvaSCript Objekt Notation. Som det fulle navnet indikerer, er det avledet fra JavaScript. Imidlertid støttes JSON -data på de fleste av de populære programmeringsspråk.
Det brukes ofte til å overføre dataene fra serveren til en webside. Det er mye enklere og renere å representere de strukturerte dataene i JSON enn XML.
JSON syntaksregel
Her er JSON -syntaksreglene:
Hva er JSON -data?
JSON-dataene er representert i form av nøkkelverdipar. Dette ligner en ordbok eller hasj på andre programmeringsspråk.
“Navn”: ”Drake”
Dette er et eksempel på enkle JSON -data. Nøkkelen her er "Navn" og "Drake" er den tilsvarende verdien. Nøkkelen, jeg.e., “Navn” og verdien, jeg.e., “Drake” er atskilt med en kolon.
JSON File Extension
JSON -dataene lagres normalt i filen med utvidelsen av “.JSON ”. For eksempel for å lagre den ansattes data, kan du ganske enkelt navngi filen som 'ansatt.json '. Dette ville være en enkel tekstfil. Du kan deretter åpne denne JSON -filen i noen av dine favoritt -redaktører.
JSON -objekt
JSON -objektet er ingenting annet enn JSON -dataene som er vedlagt i de krøllete seler. Her er et eksempel JSON -objekt:
Et JSON -objekt kan inneholde flere JSON -data. Hver JSON -data er atskilt med komma. JSON-data er representert som nøkkelverdipar. Nøkkelen, jeg.e., “Navn” og verdien, jeg.e., “Drake” er atskilt med en kolon. I eksemplet ovenfor er det fire nøkkelverdipar. Den første nøkkelen er "Navn"; “Drake” er den tilsvarende verdien for den. Tilsvarende er "ansatt", "telefon" og "avdeling" de tre andre nøklene.
JSON Array
En JSON-matrise kan inneholde flere komma-separerte JSON-objekter. JSON -matrisen er vedlagt i en firkantet brakett. La oss se på et eksempel på en JSON -matrise:
"Studenter": [Dette er et eksempel på en JSON -matrise. Her er "studenter" vedlagt en firkantet brakett, jeg.e., Array, og den inneholder fire JSON -objekter. Hvert av disse objektene er representert i form av nøkkelverdipar og er atskilt med komma.
En prøve JSON -fil
Nå, siden vi forsto JSON -data, JSON Objects, JSON Array, la oss se på et eksempel på en JSON -fil:
Parsing biblioteker i C ++:
Det er ingen naturlig løsning for analysering av JSON -data i C++. Imidlertid er det flere biblioteker for å analysere JSON -data i C++. I denne artikkelen skal vi se nærmere på de to mest populære bibliotekene for å analysere JSON -data i C++. Her er GitHub -koblingene for å analysere JSON -data:
Det kan være lurt å laste ned disse bibliotekene for å kunne utføre eksemplene som vises nedenfor.
Eksempler
Nå har vi en grunnleggende forståelse av JSON -data, objekter, matriser og tilgjengelige parsingbiblioteker. La oss nå se på et par eksempler for å analysere JSON -data i C ++:
For eksempel 1 og eksempel-2, vil vi benytte oss av “Nlohmann” -biblioteket. Når det gjelder eksempel-3, vil vi bruke "Rapidjson" -biblioteket.
Eksempel-1: Parse JSON i C++
I dette eksempelprogrammet vil vi demonstrere hvordan du får tilgang til verdier av JSON -data i C++.
#inkludere
#include "Json.HPP "
Bruker JSON = nlohmann :: json;
int main ()
// JD -arbeidstakere
json jdemploys =
"FirstName", "Sean",
"LastName", "Brown",
"StudentId", 21453,
"Avdeling", "Computer SC.";
// få tilgang til verdiene
std :: String fname = jdemploys.verdi ("FirstName", "Oops");
std :: String lName = jdemploys.verdi ("LastName", "Oops");
int sid = jdemploys.verdi ("StudentId", 0);
Std :: String Dept = JDEmployee.verdi ("avdeling", "oops");
// Skriv ut verdiene
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;
retur 0;
Eksempel-2: Analyse og serialiser JSON i C++
I dette eksempelprogrammet skal vi se hvordan du kan analysere og serialisere JSON i C++. Vi bruker "JSON :: parse ()" for å analysere JSON -dataene.
#inkludere
#include "Json.HPP "
#inkludere
Bruker JSON = nlohmann :: json;
int main ()
// Her er en JSON -tekst
char tekst [] = r "(
"Bok":
"Bredde": 450,
"Høyde": 30,
"Tittel": "Hello World",
"Isbiografi": falsk,
"Numofcopies": 4,
"Libraryids": [2319, 1406, 3854, 987]
) ";
// La oss analysere og serialisere JSON
json j_complete = json :: parse (tekst);
std :: cout << std::setw(4) << j_complete << std::endl;
Eksempel-3: Parse JSON i C++
Nå vil vi demonstrere hvordan du kan analysere JSON -streng ved hjelp av RapidJson -biblioteket. Rapidjson ble opprinnelig inspirert av RapidXML. I dette eksempelprogrammet analyserer vi en JSON -streng til DOM. Vi har erklært “MYDOC” av type “Dokument” og deretter ved å bruke “MYDOC.parse () ”metode for å analysere JSON -strengen.
#inkludere
#include "Rapidjson/Writer.h "
#include "Rapidjson/Document.h "
#include "RapidJson/StringBuffer.h "
ved hjelp av navneområdet Rapidjson;
int main ()
const char* json = "" FirstName ":" Sean "," LastName ":" Brown "," Empid ": 21453,
"Avdeling": "Computer SC."";
// analyser JSON -strengen til DOM
Dokumentere mydoc;
mydoc.Parse (JSON);
// dom til streng
StringBuffer Buffer;
Forfatterforfatter (buffer);
mydoc.Godta (forfatter);
// Skriv ut utgangen
std :: cout << buffer.GetString() << std::endl;
retur 0;
Konklusjon
I denne artikkelen har vi kort diskutert JSON -data, objekt, matrise og syntaks. Som vi vet, er det ingen naturlig løsning for JSON -data som analyserer i C ++; Vi har brukt to forskjellige biblioteker for å analysere JSON -data i C++. Vi har sett på tre forskjellige eksempler for å demonstrere JSON -data -parsingmekanismen i C++. Sammenlignet med "Nlohmann" -biblioteket, er Rapidjson liten, rask og minnevennlig.