Čo je to JSON?
JSON je ľahká textová reprezentácia na organizované ukladanie a prenos štruktúrovaných údajov. Údaje JSON sú reprezentované vo forme zoradených zoznamov a párov kľúč - hodnota. JSON znamená JavaScript Object Notácie. Ako naznačuje celý názov, je odvodený od JavaScriptu. Údaje JSON sú však podporované vo väčšine populárnych programovacích jazykov.
Často sa používa na prenos údajov zo servera na webovú stránku. Je oveľa jednoduchšie a čistejšie reprezentovať štruktúrované údaje v JSON ako XML.
Pravidlo syntaxe JSON
Tu sú pravidlá syntaxe JSON:
- Údaje JSON by mali byť vždy vo forme párov kľúč - hodnota.
- Údaje JSON sú oddelené čiarkami.
- Na reprezentáciu objektu JSON sa používa zložená zátvorka.
- Hranatá zátvorka sa používa na vyjadrenie poľa JSON.
Čo sú údaje JSON?
Údaje JSON sú reprezentované vo forme párov kľúč - hodnota. Je to podobné ako slovník alebo hash v iných programovacích jazykoch.
„Meno“: „Drake“
Toto je príklad jednoduchých údajov JSON. Kľúč je tu „Meno“ a „Drake“ je zodpovedajúca hodnota. Kľúč, t.j.e., „Meno“ a hodnota, t.j.e., „Drake“ sú oddelené dvojbodkou.
Prípona súboru JSON
Údaje JSON sa zvyčajne ukladajú do súboru s príponou „.json ”. Napríklad na uloženie údajov zamestnanca môžete súbor jednoducho pomenovať ako „zamestnanec“.json '. Bol by to jednoduchý textový súbor. Tento súbor JSON potom môžete otvoriť v ktoromkoľvek zo svojich obľúbených textových editorov.
Objekt JSON
Objekt JSON nie je nič iné ako údaje JSON uzavreté v zložených zátvorkách. Tu je vzorový objekt JSON:
„Meno“: „Drake“,
„Employee ID“: „23547a“,
„Phone“: „23547“,
„Department“: „Finance“
Objekt JSON môže obsahovať viac údajov JSON. Každé údaje JSON sú oddelené čiarkou. Údaje JSON sú reprezentované ako páry kľúč - hodnota. Kľúč, t.j.e., „Meno“ a hodnota, t.j.e., „Drake“ sú oddelené dvojbodkou. Vo vyššie uvedenom príklade existujú štyri páry kľúč - hodnota. Prvý kľúč je „Meno“; „Drake“ je pre neho zodpovedajúca hodnota. Podobne „Zamestnanec“, „Telefón“ a „Oddelenie“ sú ďalšie tri kľúče.
JSON pole
Pole JSON môže obsahovať niekoľko objektov JSON oddelených čiarkami. Pole JSON je uzavreté v hranatej zátvorke. Pozrime sa na príklad poľa JSON:
„Študenti“: ["firstName": "Sean", "lastName": "Brown",
"firstName": "Drake", "lastName": "Williams",
"firstName": "Tom", "lastName": "Miller",
„FirstName“: „Peter“, „lastName“: „Johnson“
]
Toto je príklad poľa JSON. Tu je „Študenti“ uzavretý so štvorcovou zátvorkou, t.j.e., pole a obsahuje štyri objekty JSON. Každý z týchto objektov je reprezentovaný vo forme párov kľúč - hodnota a je oddelený čiarkou.
Vzorový súbor JSON
Teraz, keď sme pochopili údaje JSON, objekty JSON, pole JSON, pozrime sa na príklad súboru JSON:
“FirstName”: “Sean”,
„LastName“: „hnedá“,
„ID študenta“: 21453,
„Department“: „Počítač Sc.“,
„Subjekty“: [„Matematika“, „Fy“, „Chem“]
Analýza knižníc v C ++:
Neexistuje žiadne natívne riešenie na analýzu údajov JSON v jazyku C++. Existuje však niekoľko knižníc na analýzu údajov JSON v jazyku C++. V tomto článku sa pozrieme na dve najobľúbenejšie knižnice na analýzu údajov JSON v jazyku C++. Tu sú odkazy na GitHub na analýzu údajov JSON:
- https: // github.com / nlohmann / json
- https: // github.com / Tencent / rapidjson /
Možno budete chcieť stiahnuť tieto knižnice, aby ste mohli vykonávať nižšie uvedené príklady.
Príklady
Teraz máme základné znalosti o dátach JSON, objektoch, poliach a dostupných knižniciach syntaktickej analýzy. Pozrime sa teraz na niekoľko príkladov na analýzu údajov JSON v C ++:
- Príklad 1: Analýza kódu JSON v jazyku C++
- Príklad 2: Analyzovať a serializovať JSON v C++
- Príklad 3: Analýza kódu JSON v jazyku C++
Pre príklady 1 a 2 použijeme knižnicu „nlohmann“. V prípade príkladu 3 použijeme knižnicu „RapidJSON“.
Príklad 1: Analýza kódu JSON v jazyku C++
V tomto príklade programu si ukážeme, ako získať prístup k hodnotám údajov JSON v jazyku C++.
#include#include „json.hpp "
pomocou json = nlohmann :: json;
int main ()
// jdZamestnanci
json jdEmployees =
"firstName", "Sean",
"lastName", "Brown",
"StudentID", 21453,
"Department", "Computer Sc.„
;
// Prístup k hodnotám
std :: string fName = jdZamestnanci.hodnota ("meno", "ups");
std :: string lName = jdZamestnanci.hodnota ("priezvisko", "oops");
int sID = jdZamestnanci.hodnota ("StudentID", 0);
std :: string odd = jdZamestnanci.hodnota („Oddelenie“, „ups“);
// Vytlačte hodnoty
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;
návrat 0;
Príklad 2: Analyzovať a serializovať JSON v C++
V tomto príklade programu uvidíme, ako analyzovať a serializovať JSON v C++. Na analýzu údajov JSON používame „json :: parse ()“.
#include#include „json.hpp "
#include
pomocou json = nlohmann :: json;
int main ()
// Tu je text JSON
char text [] = R "(
„Kniha“:
"Šírka": 450,
"Výška": 30,
"Title": "Hello World",
"isBiography": false,
„NumOfCopies“: 4,
„LibraryIDs“: [2319, 1406, 3854, 987]
) ";
// Poďme analyzovať a serializovať JSON
json j_complete = json :: parse (text);
std :: cout << std::setw(4) << j_complete << std::endl;
Príklad 3: Analýza kódu JSON v jazyku C++
Teraz si ukážeme, ako analyzovať reťazec JSON pomocou knižnice RapidJSON. RapidJSON sa pôvodne inšpiroval RapidXML. V tomto príklade programu analyzujeme reťazec JSON na DOM. Vyhlásili sme „mydoc“ typu „Dokument“ a potom použijeme „mydoc“.metóda parse () na analýzu reťazca JSON.
#include#include „rapidjson / spisovateľ.h "
#include „rapidjson / dokument.h "
#include "rapidjson / stringbuffer.h "
pomocou menného priestoru rapidjson;
int main ()
const char * json = "" firstName ":" Sean "," lastName ":" Brown "," empId ": 21453,
"department": "Počítač Sc."";
// Analyzujte reťazec JSON do modelu DOM
Dokument mydoc;
mydoc.Analýza (json);
// DOM na reťazec
StringBuffer medzipamäť;
Spisovateľ
mydoc.Prijať (spisovateľ);
// Vytlačí výstup
std :: cout << buffer.GetString() << std::endl;
návrat 0;
Záver
V tomto článku sme sa v krátkosti venovali údajom, objektom, poľom a syntaxe JSON. Ako vieme, pre analýzu dát JSON v C ++ neexistuje natívne riešenie; na analýzu údajov JSON v jazyku C sme použili dve rôzne knižnice++. Pozreli sme sa na tri rôzne príklady, aby sme demonštrovali mechanizmus analýzy údajov JSON v jazyku C++. V porovnaní s knižnicou „nlohmann“ je RapidJSON malý, rýchly a nenáročný na pamäť.