C ++

Hur man analyserar JSON i C ++

Hur man analyserar JSON i C ++
Syftet med denna handledning är att förstå JSON-data och hur man analyserar JSON-data i C++. Vi kommer att diskutera JSON-data, Object, Array, JSON-syntax och sedan gå igenom flera arbetsexempel för att förstå analyseringsmekanismen för JSON-data i C++.

Vad är JSON?

JSON är en lätt textbaserad representation för att lagra och överföra strukturerad data på ett organiserat sätt. JSON-data representeras i form av ordnade listor och nyckel-värdepar. JSON står för JavaSkrypt Object Notation. Som det fullständiga namnet antyder härrör det från JavaScript. JSON-data stöds dock på de flesta av de populära programmeringsspråken.

Det används ofta för att överföra data från servern till en webbsida. Det är mycket enklare och renare att representera strukturerad data i JSON än XML.

JSON-syntaxregel

Här är JSON-syntaxreglerna:

  1. JSON-data ska alltid vara i form av nyckel-värdepar.
  2. JSON Data separeras med kommatecken.
  3. Ett lockigt stag används för att representera JSON-objekt.
  4. En fyrkantig parentes används för att representera en JSON Array.

Vad är JSON Data?

JSON-data representeras i form av nyckel-värdepar. Detta liknar en ordbok eller hash på andra programmeringsspråk.

“Namn”: ”Drake”

Detta är ett exempel på enkla JSON-data. Nyckeln här är "Namn" och "Drake" är motsvarande värde. Nyckeln, jag.e., “Namn” och värdet, i.e., ”Drake” är åtskilda av ett kolon.

JSON filändelse

JSON-data lagras normalt i filen med tillägget “.json ”. För att till exempel lagra den anställdas data kan du helt enkelt namnge filen som 'anställd.json '. Detta skulle vara en enkel textfil. Du kan sedan öppna den här JSON-filen i någon av dina favorittextredigerare.

JSON-objekt

JSON-objektet är inget annat än JSON-data som är inneslutna i de lockiga hakparenteserna. Här är ett exempel på ett JSON-objekt:


“Namn”: ”Drake”,
“Medarbetar-ID”: “23547a”,
“Telefon”: “23547”,
“Avdelning”: “Ekonomi”

Ett JSON-objekt kan innehålla flera JSON-data. Varje JSON-data separeras med ett komma. JSON-data representeras som nyckel-värdepar. Nyckeln, jag.e., “Namn” och värdet, i.e., ”Drake” är åtskilda av ett kolon. I exemplet ovan finns det fyra nyckel-värdepar. Den första nyckeln är "Namn"; ”Drake” är motsvarande värde för det. På samma sätt är “EmployeeID”, “Phone” och “Department” de tre andra knapparna.

JSON Array

En JSON-matris kan innehålla flera kommaseparerade JSON-objekt. JSON-matrisen är innesluten inom en hakparentes. Låt oss titta på ett exempel på en JSON-array:

"Studenter": [
"firstName": "Sean", "lastName": "Brown",
"firstName": "Drake", "lastName": "Williams",
"firstName": "Tom", "lastName": "Miller",
“FirstName”: ”Peter”, “lastName”: “Johnson”
]

Detta är ett exempel på en JSON-array. Här är "Studenter" bifogade med en hakparentes, dvs.e., array och den innehåller fyra JSON-objekt. Var och en av dessa objekt representeras i form av nyckel-värdepar och separeras med ett komma.

Ett exempel på JSON-fil

Nu, eftersom vi förstod JSON-data, JSON-objekt, JSON-array, låt oss titta på ett exempel på en JSON-fil:


“FirstName”: “Sean”,
“LastName”: “Brown”,
”Student-ID”: 21453,
“Avdelning”: “Dator Sc.”,
"Ämnen": ["Matematik", "Phy", "Chem"]

Analysera bibliotek i C ++:

Det finns ingen inbyggd lösning för att analysera JSON-data i C++. Det finns dock flera bibliotek för att analysera JSON-data i C++. I den här artikeln ska vi titta på de två mest populära biblioteken för att analysera JSON-data i C++. Här är GitHub-länkar för att analysera JSON-data:

  1. https: // github.com / nlohmann / json
  2. https: // github.com / Tencent / rapidjson /

Du kanske vill ladda ner dessa bibliotek för att kunna utföra exemplen som visas nedan.

Exempel

Nu har vi en grundläggande förståelse för JSON-data, objekt, matriser och tillgängliga tolkningsbibliotek. Låt oss nu titta på ett par exempel för att analysera JSON-data i C ++:

För exempel 1 och exempel 2 kommer vi att använda biblioteket "nlohmann". I fallet med exempel 3 kommer vi att använda biblioteket “RapidJSON”.

Exempel 1: Analysera JSON i C++

I detta exempelprogram kommer vi att visa hur du får åtkomst till värden för JSON-data i C++.

#omfatta
#include "json.hpp "
använder json = nlohmann :: json;
int main ()

// jdAnställda
json jdAnställda =

"firstName", "Sean",
"efternamn", "brun",
"StudentID", 21453,
"Avdelning", "Dator Sc."
;
// Åtkomst till värdena
std :: string fName = jdAnställda.värde ("förnamn", "oops");
std :: sträng lName = jdAnställda.värde ("efternamn", "oops");
int sID = jdAnställda.värde ("StudentID", 0);
std :: string dept = jdAnställda.värde ("Avdelning", "oops");
// Skriv ut värdena
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;
returnera 0;

Exempel 2: Analysera och seriejustera JSON i C++

I detta exempelprogram ska vi se hur man analyserar och serierar JSON i C++. Vi använder “json :: parse ()” för att analysera JSON-data.

#omfatta
#include "json.hpp "
#omfatta
använder json = nlohmann :: json;
int main ()

// Här är en JSON-text
char text [] = R "(

"Bok":
"Bredd": 450,
"Höjd": 30,
"Title": "Hello World",
"isBiography": falskt,
"NumOfCopies": 4,
"LibraryIDs": [2319, 1406, 3854, 987]


) ";
// Låt oss analysera och serieera JSON
json j_complete = json :: analysera (text);
std :: cout << std::setw(4) << j_complete << std::endl;

Exempel 3: Analysera JSON i C++

Nu kommer vi att visa hur man analyserar JSON-strängar med hjälp av RapidJSON-biblioteket. RapidJSON inspirerades ursprungligen av RapidXML. I detta exempelprogram analyserar vi en JSON-sträng i DOM. Vi har deklarerat "mydoc" av typen "Document" och sedan använt "mydoc.parse () ”-metod för att analysera JSON-strängen.

#omfatta
#include "rapidjson / writer.h "
#include "rapidjson / document.h "
#include "rapidjson / stringbuffer.h "
med hjälp av namespace rapidjson;
int main ()

const char * json = "" firstName ":" Sean "," lastName ":" Brown "," empId ": 21453,
"department": "Dator Sc."";
// Analysera JSON-strängen i DOM
Dokument mydoc;
mydoc.Analysera (json);
// DOM till sträng
StringBuffer buffert;
Författare författare (buffert);
mydoc.Acceptera (författare);
// Skriv ut produktionen
std :: cout << buffer.GetString() << std::endl;
returnera 0;

Slutsats

I den här artikeln har vi kort diskuterat JSON-data, objekt, array och syntax. Som vi vet finns det ingen inbyggd lösning för JSON-dataparsning i C ++; Vi har använt två olika bibliotek för att analysera JSON-data i C++. Vi tittade på tre olika exempel för att demonstrera JSON-dataparsningsmekanismen i C++. Jämfört med biblioteket “nlohmann” är RapidJSON liten, snabb och minnesvänlig.

Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...
HD Remastered Games för Linux som aldrig tidigare hade en Linux-version
Många spelutvecklare och utgivare kommer med HD-remaster av gamla spel för att förlänga livstiden för franchisen, snälla fans som begär kompatibilitet...
Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...