C ++

JSON-i sõelumine C ++ -s

JSON-i sõelumine C ++ -s
Selle õpetuse eesmärk on mõista JSON-i andmeid ja JSON-i andmete sõelumist C-s++. Arutame JSON-i andmeid, objekti, massiivi, JSON-i süntaksit ja seejärel läbime mitu töötavat näidet, et mõista JSON-i andmete sõelumismehhanismi C-s++.

Mis on JSON?

JSON on kergekaaluline tekstipõhine esitus struktureeritud andmete organiseeritud salvestamiseks ja edastamiseks. JSON-andmed on esitatud järjestatud loendite ja võtmeväärtuste paaridena. JSON tähistab JavaSkäsikiri Oobjekt Notatsioon. Nagu näitab täisnimi, on see tuletatud JavaScripti abil. Kuid JSON-andmeid toetatakse enamikus populaarsetes programmeerimiskeeltes.

Seda kasutatakse sageli andmete edastamiseks serverist veebisaidile. Struktureeritud andmete esitamine JSON-is on palju lihtsam ja puhtam kui XML.

JSON-i süntaksireegel

Siin on JSON-i süntaksireeglid:

  1. JSON Andmed peaksid alati olema võtme-väärtuse paaridena.
  2. JSON Andmed eraldatakse komadega.
  3. JSON-objekti tähistamiseks kasutatakse lokkisulgurit.
  4. JSON-massiivi tähistamiseks kasutatakse nurksulgusid.

Mis on JSON Data?

JSONi andmed on esitatud võtme-väärtuste paaridena. See sarnaneb teiste programmeerimiskeelte sõnaraamatu või räsiga.

„Nimi”: „Drake”

See on lihtne JSON-andmete näide. Võti on siin „Nimi” ja „Drake” on vastav väärtus. Võti, s.t.e., „Nimi” ja väärtus, s.t.e., “Drake” on eraldatud kooloniga.

JSON-faililaiend

JSON-andmed salvestatakse tavaliselt faili laiendiga “.json ”. Näiteks töötaja andmete salvestamiseks võite faili lihtsalt nimetada töötajaks.json '. See oleks lihtne tekstifail. Seejärel saate selle JSON-faili avada mis tahes oma lemmiktekstiredaktoris.

JSON-objekt

JSON-objekt pole midagi muud kui lokkis sulgudes suletud JSON-i andmed. Siin on JSON-i objekti näidis:


„Nimi”: „Drake”,
„Töötaja ID”: „23547a”,
„Telefon”: „23547”,
„Osakond“: „Rahandus“

JSON-objekt võib sisaldada mitut JSON-andmeid. Kõik JSON-i andmed eraldatakse komaga. JSON-andmeid esitatakse võtme-väärtuste paaridena. Võti, s.t.e., „Nimi” ja väärtus, s.t.e., “Drake” on eraldatud kooloniga. Ülaltoodud näites on neli võtmeväärtuste paari. Esimene võti on “Nimi”; “Drake” on sellele vastav väärtus. Samamoodi on ülejäänud kolm võtit “EmployeeID”, “Phone” ja “Department”.

JSON massiiv

JSON-massiiv võib sisaldada mitut komaga eraldatud JSON-objekti. JSON massiiv on suletud nurksulgudesse. Vaatame JSON-massiivi näidet:

"Õpilased": [
"eesnimi": "Sean", "perenimi": "pruun",
"eesnimi": "Drake", "perenimi": "Williams",
"eesnimi": "Tom", "perenimi": "Miller",
“Eesnimi”: “Peeter”, “perenimi”: “Johnson”
]

See on JSON-massiivi näide. Siin on “Tudengid” ümbritsetud nurksulguga, s.t.e., massiiv ja see sisaldab nelja JSON-objekti. Kõiki neid objekte on kujutatud võtmeväärtuste paaridena ja need on eraldatud komaga.

JSON-faili näidis

Kuna me mõistsime JSON-i andmeid, JSON-objekte, JSON-massiivi, vaatame JSON-faili näidet:


„Eesnimi”: „Sean”,
„Perekonnanimi”: „pruun”,
„Õpilase ID”: 21453,
"Osakond": "Arvuti Sc.”,
„Õppeained“: [„matemaatika“, „Phy“, „Chem“]

Raamatukogude analüüsimine C ++ keeles:

JSON-i andmete sõelumiseks C-s pole natiivlahendust++. JSON-i andmete sõelumiseks C-s on aga mitu teeki++. Selles artiklis uurime kahte kõige populaarsemat teeki, et sõeluda JSON-andmeid C-s++. JSON-i andmete analüüsimiseks on siin GitHubi lingid:

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

Kui soovite allpool toodud näiteid täita, võite need teegid alla laadida.

Näited

Nüüd on meil põhiteadmised JSON-i andmetest, objektidest, massiividest ja saadaolevatest sõelumisraamatukogudest. Vaatame nüüd paari näidet JSON-andmete sõelumiseks C ++ -s:

Näidete 1 ja 2 puhul kasutame nlohmanni teeki. Näite 3 puhul kasutame teeki „RapidJSON”.

Näide 1: JSON-i sõelumine C-s++

Selles näidisprogrammis demonstreerime, kuidas C-s JSON-i andmetele juurde pääseda++.

# kaasata
#include "json.hpp "
kasutades json = nlohmann :: json;
int main ()

// jdTöötajad
json jdTöötajad =

"eesnimi", "Sean",
"perekonnanimi", "pruun",
"StudentID", 21453,
"Osakond", "Computer Sc."
;
// Juurdepääs väärtustele
std :: string fName = jdTöötajad.väärtus ("eesnimi", "oih");
std :: string lName = jdTöötajad.väärtus ("perekonnanimi", "oih");
int sID = jdTöötajad.väärtus ("StudentID", 0);
std :: string dept = jdTöötajad.väärtus ("osakond", "oih");
// Prindige väärtused
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;
tagastama 0;

Näide 2: JSON-i sõelumine ja serialiseerimine C-s++

Selles näidisprogrammis näeme, kuidas JSON-i C-s sõeluda ja järjestada++. JSON-i andmete sõelumiseks kasutame teksti “json :: parse ()”.

# kaasata
#include "json.hpp "
# kaasata
kasutades json = nlohmann :: json;
int main ()

// Siin on JSON-i tekst
söetekst [] = R "(

"Raamat":
"Laius": 450,
"Kõrgus": 30,
"Pealkiri": "Tere maailm",
"isBiography": vale,
"NumOfCopies": 4,
"LibraryIDs": [2319, 1406, 3854, 987]


) ";
// Analüüsime ja järjestame JSON-i
json j_complete = json :: parse (tekst);
std :: cout << std::setw(4) << j_complete << std::endl;

Näide 3: JSON-i sõelumine C-s++

Nüüd demonstreerime JSON-i stringi sõelumist RapidJSON-i teegi abil. RapidJSON oli algselt inspireeritud RapidXML-ist. Selles näidisprogrammis parsime JSON-i stringi DOM-i. Oleme kuulutanud “mydoc” tüüpi “Document” ja kasutanud seejärel “mydoc.parse () ”meetod JSON-stringi sõelumiseks.

# kaasata
#include "rapidjson / kirjanik.h "
#include "rapidjson / dokument.h "
#include "rapidjson / stringbuffer.h "
nimeruumi rapidjson kasutamine;
int main ()

const char * json = "" eesnimi ":" Sean "," perekonnanimi ":" pruun "," empId ": 21453,
"osakond": "Computer Sc."";
// Sõeluge JSON-string DOM-i
Dokumendi mydoc;
mydoc.Parsimine (json);
// DOM stringiks
StringBufferi puhver;
Kirjanik kirjutaja (puhver);
mydoc.Nõus (kirjanik);
// Prindi väljund
std :: cout << buffer.GetString() << std::endl;
tagastama 0;

Järeldus

Selles artiklis oleme lühidalt arutanud JSON-i andmeid, objekti, massiivi ja süntaksit. Nagu me teame, pole JSON-i andmete parsimiseks C ++ keeles natiivlahendust; oleme C-s JSON-andmete sõelumiseks kasutanud kahte erinevat teeki++. Uurisime kolme erinevat näidet, et näidata JSON-i andmete parsimise mehhanismi C-s++. Võrreldes „nlohmanni” raamatukoguga on RapidJSON väike, kiire ja mälusõbralik.

Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...
Kuidas installida ja mängida Doomi Linuxis
Doomi sissejuhatus Doom-seeria sai alguse 90ndatel pärast algse Doomi väljaandmist. See oli kohene hitt ja sellest ajast alates on mänguseeria pälvinu...
Vulkan Linuxi kasutajatele
Iga uue põlvkonna graafikakaartidega näeme, et mängude arendajad ületavad graafilise truuduse piire ja jõuavad fotorealismile ühe sammu lähemale. Kuid...