C ++

Kā parsēt JSON C ++ versijā

Kā parsēt JSON C ++ versijā
Šīs apmācības mērķis ir izprast JSON datus un to, kā parsēt JSON datus C++. Mēs apspriedīsim JSON datus, objektu, masīvu, JSON sintaksi un pēc tam izskatīsim vairākus darba piemērus, lai izprastu JSON datu parsēšanas mehānismu C++.

Kas ir JSON?

JSON ir viegls teksta attēlojums strukturētu datu glabāšanai un pārsūtīšanai organizētā veidā. JSON dati tiek attēloti sakārtotu sarakstu un atslēgu un vērtību pāru veidā. JSON apzīmē avaSscenārijs Oobjekts Notācija. Kā norāda pilns nosaukums, tas ir iegūts no JavaScript. Tomēr JSON dati tiek atbalstīti lielākajā daļā populāro programmēšanas valodu.

To bieži izmanto, lai pārsūtītu datus no servera uz tīmekļa lapu. Strukturētos datus attēlot JSON ir daudz vieglāk un tīrāk nekā XML.

JSON sintakses kārtula

Šeit ir JSON sintakses kārtulas:

  1. JSON datiem vienmēr jābūt atslēgu un vērtību pāru formā.
  2. JSON dati tiek atdalīti ar komatiem.
  3. Cirtainā lencīte tiek izmantota, lai attēlotu JSON objektu.
  4. Kvadrātiekava tiek izmantota, lai attēlotu JSON masīvu.

Kas ir JSON dati?

JSON dati tiek attēloti atslēgu un vērtību pāru veidā. Tas ir līdzīgs vārdnīcai vai hash citās programmēšanas valodās.

“Vārds”: “Drake”

Šis ir vienkāršu JSON datu piemērs. Šeit galvenais ir “Nosaukums” un “Drake” ir atbilstošā vērtība. Atslēga, t.i.e., “Nosaukums” un vērtība, t.e., “Drake” atdala kols.

JSON faila paplašinājums

JSON dati parasti tiek glabāti failā ar paplašinājumu “.json ”. Piemēram, lai saglabātu darbinieka datus, varat vienkārši nosaukt failu kā “darbinieks.Json '. Tas būtu vienkāršs teksta fails. Pēc tam šo JSON failu varat atvērt jebkurā no iecienītākajiem teksta redaktoriem.

JSON objekts

JSON objekts ir nekas cits kā JSON dati, kas iekļauti cirtainajās iekavās. Šeit ir JSON objekta paraugs:


“Vārds”: “Drake”,
“Darbinieka ID”: “23547a”,
“Tālrunis”: “23547”,
“Departaments”: “Finanses”

JSON objektā var būt vairāki JSON dati. Katru JSON datus atdala komats. JSON dati tiek attēloti kā atslēgu un vērtību pāri. Atslēga, t.i.e., “Nosaukums” un vērtība, t.e., “Drake” atdala kols. Iepriekš minētajā piemērā ir četri atslēgu un vērtību pāri. Pirmais taustiņš ir “Nosaukums”; “Drake” ir atbilstošā tā vērtība. Līdzīgi “EmployeeID”, “Phone” un “Department” ir pārējie trīs taustiņi.

JSON masīvs

JSON masīvā var būt vairāki komatiem atdalīti JSON objekti. JSON masīvs ir ievietots kvadrātiekavās. Apskatīsim JSON masīva piemēru:

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

Šis ir JSON masīva piemērs. Šeit “Studenti” ir pievienoti kvadrātiekavai, t.e., masīvs, un tajā ir četri JSON objekti. Katrs no šiem objektiem ir attēlots atslēgu un vērtību pāru veidā un ir atdalīts ar komatu.

JSON faila paraugs

Tā kā mēs sapratām JSON datus, JSON objektus, JSON masīvu, apskatīsim JSON faila piemēru:


“FirstName”: “Šons”,
“LastName”: “Brūns”,
“Student ID”: 21453,
“Departaments”: “Datorzinātne.”,
“Priekšmeti”: [“Matemātika”, “Phy”, “Chem”]

Parsējot bibliotēkas C ++:

Nav dzimtā risinājuma JSON datu parsēšanai C++. Tomēr JSON datu parsēšanai C ir vairākas bibliotēkas++. Šajā rakstā mēs izpētīsim divas populārākās bibliotēkas, lai parsētu JSON datus C++. Šeit ir GitHub saites JSON datu parsēšanai:

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

Varat lejupielādēt šīs bibliotēkas, lai varētu izpildīt tālāk parādītos piemērus.

Piemēri

Tagad mums ir pamata izpratne par JSON datiem, objektiem, masīviem un pieejamajām parsēšanas bibliotēkām. Apskatīsim pāris piemērus, lai parsētu JSON datus C ++:

1. un 2. piemērā mēs izmantosim bibliotēku “nlohmann”. 3. piemērā mēs izmantosim bibliotēku “RapidJSON”.

1. piemērs: JSON parsēšana C++

Šajā programmas piemērā mēs parādīsim, kā piekļūt JSON datu vērtībām C++.

# iekļaut
#include "json.hpp "
izmantojot json = nlohmann :: json;
int main ()

// jdDarbinieki
json jdDarbinieki =

"firstName", "Sean",
"uzvārds", "brūns",
"StudentID", 21453,
"Departaments", "Computer Sc."
;
// Piekļūstiet vērtībām
std :: string fName = jdDarbinieki.vērtība ("firstName", "ups");
std :: string lName = jdDarbinieki.vērtība ("uzvārds", "ups");
int sID = jdDarbinieki.vērtība ("StudentID", 0);
std :: string dept = jdDarbinieki.vērtība ("departaments", "ups");
// Izdrukājiet vērtības
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;
atgriešanās 0;

2. piemērs: JSON parsēšana un serializēšana C++

Šajā programmas piemērā mēs redzēsim, kā parsēt un serializēt JSON C++. JSON datu parsēšanai mēs izmantojam “json :: parse ()”.

# iekļaut
#include "json.hpp "
# iekļaut
izmantojot json = nlohmann :: json;
int main ()

// Šeit ir JSON teksts
char text [] = R "(

"Grāmata":
"Platums": 450,
"Augstums": 30,
"Nosaukums": "Sveika pasaule",
"isBiography": nepatiesa,
"NumOfCopies": 4,
"LibraryIDs": [2319, 1406, 3854, 987]


) ";
// Parsēsim un serializēsim JSON
json j_complete = json :: parse (teksts);
std :: cout << std::setw(4) << j_complete << std::endl;

3. piemērs: JSON parsēšana C++

Tagad mēs parādīsim, kā parsēt JSON virkni, izmantojot RapidJSON bibliotēku. RapidJSON sākotnēji iedvesmoja RapidXML. Šajā programmas piemērā mēs parsējam JSON virkni DOM. Mēs esam deklarējuši “mydoc” veidu “Document” un pēc tam izmantojuši “mydoc.parse () ”metode, lai parsētu JSON virkni.

# iekļaut
#include "quickjson / rakstnieks.h "
#include "rapidjson / dokuments.h "
#include "rapidjson / stringbuffer.h "
izmantojot vārdamvietu rapidjson;
int main ()

const char * json = "" firstName ":" Sean "," lastName ":" Brown "," empId ": 21453,
"departaments": "Computer Sc."";
// Parsējiet JSON virkni DOM
Dokumentu mydoc;
mydoc.Parsēt (json);
// DOM uz virkni
StringBuffer buferis;
rakstnieks rakstnieks (buferis);
mydoc.Pieņemt (rakstnieks);
// Izdrukājiet izvadi
std :: cout << buffer.GetString() << std::endl;
atgriešanās 0;

Secinājums

Šajā rakstā mēs īsi apspriedām JSON datus, objektu, masīvu un sintaksi. Kā mēs zinām, nav dzimtā risinājuma JSON datu parsēšanai C ++; mēs esam izmantojuši divas dažādas bibliotēkas, lai parsētu JSON datus C++. Mēs parādījām trīs dažādus piemērus, lai parādītu JSON datu parsēšanas mehānismu C++. Salīdzinot ar “nlohmann” bibliotēku, RapidJSON ir mazs, ātrs un draudzīgs atmiņai.

Kā nomainīt peles kreiso un labo pogu operētājsistēmā Windows 10
Tas ir diezgan normāli, ka visas datora peles ierīces ir ergonomiski izstrādātas lietotājiem ar labo roku. Bet ir pieejamas peles ierīces, kas ir īpaš...
Atdariniet peles klikšķus, virzot kursoru, izmantojot operētājsistēmā Windows 10 bezklikšķu peli
Peles vai tastatūras lietošana nepareizā pozā, ja to lieto pārmērīgi daudz, var izraisīt daudz veselības problēmu, tostarp spriedzi, karpālā kanāla si...
Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...