C ++

Kaip išanalizuoti JSON C ++

Kaip išanalizuoti JSON C ++
Šios pamokos tikslas yra suprasti JSON duomenis ir kaip analizuoti JSON duomenis C++. Aptarsime JSON duomenis, objektą, masyvą, JSON sintaksę ir tada pateiksime keletą veikiančių pavyzdžių, kad suprastume JSON duomenų analizės mechanizmą C++.

Kas yra JSON?

JSON yra lengvas tekstinis atvaizdavimas, skirtas organizuotiems duomenims saugoti ir perduoti. JSON duomenys pateikiami sutvarkytų sąrašų ir raktų-reikšmių porų pavidalu. JSON reiškia avaSscenarijus Oobjektas Notacija. Kaip rodo visas vardas, jis yra kilęs iš „JavaScript“. Tačiau JSON duomenys palaikomi daugeliu populiarių programavimo kalbų.

Jis dažnai naudojamas duomenims iš serverio perkelti į tinklalapį. Daug lengviau ir švariau struktūrizuotus duomenis atvaizduoti JSON nei XML.

JSON sintaksės taisyklė

Štai JSON sintaksės taisyklės:

  1. JSON duomenys visada turėtų būti pateikiami kaip raktų ir reikšmių poros.
  2. JSON duomenys atskiriami kableliais.
  3. Garbanotoji petneša naudojama vaizduoti JSON objektą.
  4. Kvadratinis skliaustas naudojamas JSON masyvui atstovauti.

Kas yra „JSON Data“?

JSON duomenys pateikiami raktų ir verčių porų pavidalu. Tai panašu į žodyną ar maišos kitose programavimo kalbose.

„Vardas“: „Drake“

Tai yra paprastų JSON duomenų pavyzdys. Čia raktas yra „Vardas“, o „Drake“ yra atitinkama reikšmė. Raktas, t.e., „Pavadinimas“ ir vertė, t.e., „Drake“ skiria dvitaškis.

JSON failo plėtinys

JSON duomenys paprastai saugomi faile su plėtiniu „.Json “. Pavyzdžiui, norėdami išsaugoti darbuotojo duomenis, failą galite tiesiog pavadinti „darbuotoju“.Json '. Tai būtų paprastas tekstinis failas. Tada galite atidaryti šį JSON failą bet kuriame iš mėgstamiausių teksto redaktorių.

JSON objektas

JSON objektas yra ne kas kita, o JSON duomenys, įterpti į garbanotas petnešas. Čia yra JSON objekto pavyzdys:


„Vardas“: „Drake“,
„Darbuotojo ID“: „23547a“,
„Telefonas“: „23547“,
„Departamentas“: „Finansai“

JSON objekte gali būti keli JSON duomenys. Kiekvienas JSON duomenys atskiriami kableliu. JSON duomenys pateikiami kaip raktų ir verčių poros. Raktas, t.e., „Pavadinimas“ ir vertė, t.e., „Drake“ skiria dvitaškis. Ankstesniame pavyzdyje yra keturios pagrindinės vertės poros. Pirmasis raktas yra „Vardas“; „Drake“ yra atitinkama jo vertė. Panašiai kiti trys raktai yra „EmployeeID“, „Phone“ ir „Department“.

JSON masyvas

JSON masyve gali būti keli kableliais atskirti JSON objektai. JSON masyvas yra uždėtas laužtiniame skliauste. Pažvelkime į JSON masyvo pavyzdį:

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

Tai yra JSON masyvo pavyzdys. Čia „Studentai“ yra uždėti laužtiniu skliaustu, t.e., masyvas, ir jame yra keturi JSON objektai. Kiekvienas iš šių objektų yra pavaizduotų reikšmių porų pavidalu ir yra atskirtas kableliu.

JSON failo pavyzdys

Kadangi supratome JSON duomenis, JSON objektus, JSON masyvą, pažiūrėkime į JSON failo pavyzdį:


„FirstName“: „Sean“,
„Pavardė“: „Ruda“,
„Studentas“: 21453,
„Departamentas“: „Computer Sc.“,
„Dalykai“: [„Matematika“, „Phy“, „Chem“]

Analizuojamos C ++ bibliotekos:

Nėra natūralaus sprendimo, kaip analizuoti JSON duomenis C++. Tačiau yra kelios bibliotekos, skirtos analizuoti JSON duomenis C++. Šiame straipsnyje nagrinėsime dvi populiariausias bibliotekas, kad išanalizuotume JSON duomenis C++. Čia pateikiamos „GitHub“ nuorodos, skirtos analizuoti JSON duomenis:

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

Galbūt norėsite atsisiųsti šias bibliotekas, kad galėtumėte vykdyti toliau pateiktus pavyzdžius.

Pavyzdžiai

Dabar mes turime pagrindinį supratimą apie JSON duomenis, objektus, masyvus ir galimas analizavimo bibliotekas. Pažiūrėkime keletą pavyzdžių, kaip išanalizuoti JSON duomenis C ++:

1 ir 2 pavyzdžiuose pasinaudosime „nlohmann“ biblioteka. 3 pavyzdžio atveju naudosime „RapidJSON“ biblioteką.

1 pavyzdys: analizuoti JSON C++

Šioje programos pavyzdyje mes parodysime, kaip pasiekti JSON duomenų reikšmes C++.

# įtraukti
#include "Json.hpp "
naudojant json = nlohmann :: json;
int main ()

// jdDarbuotojai
json jdDarbuotojai =

"firstName", "Sean",
"pavardė", "ruda",
„StudentID“, 21453,
„Departamentas“, „Computer Sc."
;
// Pasiekite reikšmes
std :: string fName = jdDarbuotojai.vertė („vardas“, „oi“);
std :: string lName = jdDarbuotojai.vertė („pavardė“, „oho“);
int sID = jdDarbuotojai.reikšmė („StudentID“, 0);
std :: string dept = jdDarbuotojai.vertė („Departamentas“, „Oi“);
// Spausdinkite reikšmes
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;
grąžinti 0;

2 pavyzdys: analizuoti ir serijuoti JSON C++

Šioje programos pavyzdyje mes pamatysime, kaip išanalizuoti ir susisteminti JSON C++. JSON duomenims analizuoti naudojame „json :: parse ()“.

# įtraukti
#include "Json.hpp "
# įtraukti
naudojant json = nlohmann :: json;
int main ()

// Čia yra JSON tekstas
simbolis tekstas [] = R "(

"Knyga":
„Plotis“: 450,
„Aukštis“: 30,
„Pavadinimas“: „Sveikas pasaulis“,
„isBiography“: klaidinga,
„NumOfCopies“: 4,
„LibraryIDs“: [2319, 1406, 3854, 987]


) ";
// Analizuokime ir serializuokime JSON
json j_complete = json :: parse (tekstas);
std :: cout << std::setw(4) << j_complete << std::endl;

3 pavyzdys: JSON analizuoti C++

Dabar mes parodysime, kaip analizuoti JSON eilutę naudojant „RapidJSON“ biblioteką. „RapidJSON“ iš pradžių įkvėpė „RapidXML“. Šioje programos pavyzdyje JSON eilutę analizuojame DOM. Mes paskelbėme „mydoc“ tipo „Dokumentas“ ir tada naudojome „mydoc“.parse () “metodas, skirtas išanalizuoti JSON eilutę.

# įtraukti
#include "rapidjson / rašytojas.h "
#include "rapidjson / dokumentas.h "
#include "rapidjson / stringbuffer.h "
naudojant vardų sritį rapidjson;
int main ()

const char * json = "" firstName ":" Sean "," lastName ":" Brown "," empId ": 21453,
"skyrius": "Computer Sc.„“;
// Išanalizuokite JSON eilutę į DOM
Dokumentų mydocas;
mydoc.Analizuoti (json);
// DOM į eilutę
„StringBuffer“ buferis;
Rašytojas rašytojas (buferis);
mydoc.Priimti (rašytojas);
// Spausdinti išvestį
std :: cout << buffer.GetString() << std::endl;
grąžinti 0;

Išvada

Šiame straipsnyje trumpai aptarėme JSON duomenis, objektą, masyvą ir sintaksę. Kaip žinome, nėra jokio pirminio JSON duomenų analizavimo sprendimo C ++; analizuodami JSON duomenis C naudojome dvi skirtingas bibliotekas++. Mes ištyrėme tris skirtingus pavyzdžius, norėdami parodyti JSON duomenų analizės mechanizmą C++. Palyginti su „nlohmann“ biblioteka, „RapidJSON“ yra mažas, greitas ir patogus atmintiui.

5 populiariausi „Linux“ skirtų ergonomiškų kompiuterinių pelių produktai
Ar ilgalaikis kompiuterio naudojimas sukelia riešo ar pirštų skausmą?? Ar jūs kenčiate nuo sąnarių standumo ir nuolat turite paspausti rankas? Ar jauč...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...