Mi az a JSON?
JSON egy könnyű, szöveges alapú ábrázolás strukturált adatok szervezett tárolására és továbbítására. A JSON-adatok rendezett listák és kulcs-érték párok formájában jelennek meg. A JSON jelentése J ava S kripta VAGY bject N otáció. Ahogy a teljes név is jelzi, a JavaScriptből származik. A JSON adatokat azonban a legtöbb népszerű programozási nyelv támogatja.
Gyakran használják az adatok átvitelére a szerverről egy weboldalra. Sokkal egyszerűbb és tisztább a strukturált adatok megjelenítése a JSON -ban, mint az XML -ben.
JSON szintaktikai szabály
Íme a JSON szintaxis szabályai:
- A JSON adatoknak mindig kulcs-érték párok formájában kell lenniük.
- A JSON adatok vesszővel vannak elválasztva.
- Göndör zárójelet használnak a JSON objektum ábrázolására.
- A szögletes zárójelet a JSON tömb ábrázolására használják.
Mi a JSON Data?
A JSON adatok kulcs-érték párok formájában jelennek meg. Ez hasonló a szótárhoz vagy a hash -hez más programozási nyelveken.
Név: Drake
Ez egy példa az egyszerű JSON adatokra. A kulcs itt a Név, a Drake pedig a megfelelő érték. A kulcsot, azaz a nevet és az értéket, azaz Drake -t kettőspont választja el.
JSON fájlkiterjesztés
A JSON adatokat általában a .json kiterjesztéssel tárolja a fájl. Például a munkavállaló adatainak tárolásához egyszerűen nevezze el a fájlt „alkalmazott.json” névvel. Ez egy egyszerű szöveges fájl lenne. Ezt követően megnyithatja ezt a JSON fájlt bármelyik kedvenc szövegszerkesztőjében.
JSON objektum
A JSON objektum nem más, mint a göndör zárójelek közé zárt JSON -adatok. Itt van egy minta JSON objektum:
{Név:Gácsér,
munkavállalói azonosító:23547a,
Telefon: 23547,
Osztály:Pénzügy
}
Egy JSON objektum több JSON adatot is tartalmazhat. Minden JSON -adatot vessző választ el. A JSON adatok kulcs-érték párokként jelennek meg. A kulcsot, azaz a nevet és az értéket, azaz Drake -t kettőspont választja el. A fenti példában négy kulcs-érték pár szerepel. Az első kulcs a Név; Drake a megfelelő érték. Hasonlóképpen az EmployeeID, a Phone és a Department a másik három kulcs.
JSON tömb
Egy JSON tömb több vesszővel elválasztott JSON objektumot tartalmazhat. A JSON tömb szögletes zárójelben található. Nézzünk egy példát a JSON tömbre:
'Diákok':[{'keresztnév':'Sean', 'vezetéknév':'Barna'},
{'keresztnév':'Gácsér', 'vezetéknév':'Williams'},
{'keresztnév':'Tom', 'vezetéknév':'Molnár'},
{keresztnév:Péter,vezetéknév:Johnson}
]
Ez egy példa a JSON tömbre. Itt a diákok szögletes zárójelben, azaz tömbben vannak, és négy JSON objektumot tartalmaz. Ezen objektumok mindegyike kulcs-érték párok formájában van ábrázolva, és vesszővel van elválasztva.
Minta JSON fájl
Most, hogy megértettük a JSON adatokat, JSON objektumokat, JSON tömböt, nézzünk egy példát a JSON fájlra:
{keresztnév:Sean,
vezetéknév:Barna,
Diákigazolvány: 21453,
Osztály:Számítógép Sc.,
Tantárgyak:[Math,Phy,Chem]
}
Könyvtárak elemzése C ++ nyelven:
Nincs natív megoldás a JSON adatok C ++ nyelvű elemzésére. Számos könyvtár létezik azonban a JSON -adatok C ++ - ban történő elemzésére. Ebben a cikkben megvizsgáljuk a két legnépszerűbb könyvtárat a JSON adatok C ++ nyelvű elemzéséhez. Itt vannak a GitHub linkek a JSON adatok elemzéséhez:
Érdemes letölteni ezeket a könyvtárakat, hogy végre tudja hajtani az alábbi példákat.
Példák
Most alapvető ismeretekkel rendelkezünk a JSON adatokról, objektumokról, tömbökről és a rendelkezésre álló elemző könyvtárakról. Nézzünk most néhány példát a JSON adatok C ++ nyelvű elemzésére:
- 1. példa: JSON elemzése C ++ nyelven
- 2. példa: JSON elemzése és sorosítása C ++ nyelven
- 3. példa: JSON elemzése C ++ nyelven
Az 1. és a 2. példa esetében az nlohmann könyvtárat fogjuk használni. A 3. példa esetében a RapidJSON könyvtárat fogjuk használni.
1. példa: JSON elemzése C ++ nyelven
Ebben a példaprogramban bemutatjuk, hogyan lehet elérni a JSON adatok értékeit C ++ nyelven.
#befoglalni#include 'json.hpp'
json használatával=nlohmann::json;
intfő-()
{
// jdMunkavállalók
json jdMunkavállalók=
{
{'keresztnév','Sean'},
{'vezetéknév','Barna'},
{'Diákigazolvány',21453},
{'Osztály','Computer Sc.'}
};
// Hozzáférés az értékekhez
órák::húrfName=jdMunkavállalók.érték('keresztnév', 'hoppá');
órák::húrlName=jdMunkavállalók.érték('vezetéknév', 'hoppá');
intsID=jdMunkavállalók.érték('Diákigazolvány', 0);
órák::húradósság=jdMunkavállalók.érték('Osztály', 'hoppá');
// Nyomtassa ki az értékeket
órák::költség << 'Keresztnév: ' <<fName<<órák::endl;
órák::költség << 'Vezetéknév: ' <<lName<<órák::endl;
órák::költség << 'Diákigazolvány: ' <<sID<<órák::endl;
órák::költség << 'Osztály:' <<adósság<<órák::endl;
Visszatérés 0;
}
2. példa: JSON elemzése és sorosítása C ++ nyelven
Ebben a példaprogramban látni fogjuk, hogyan elemezzük és szerializáljuk a JSON -t C ++ nyelven. A json :: parse () függvényt használjuk a JSON adatok elemzéséhez.
#befoglalni#include 'json.hpp'
#befoglalni
json használatával=nlohmann::json;
intfő-()
{
// Itt egy JSON szöveg
charszöveg[] =R'(
{
'Könyv': {
'Szélesség': 450,
'Magasság': 30,
'Cím':'Helló Világ',
'isBiography': hamis,
'NumOfCopies': 4,
'LibraryID -k': [2319, 1406, 3854, 987]
}
}
) '';
// Elemezzük és sorosítjuk a JSON -t
json j_complete=json::elemezni(szöveg);
órák::költség <<órák::setw(4) <<j_komplett<<órák::endl;
}
3. példa: JSON elemzése C ++ nyelven
Most bemutatjuk, hogyan elemezzük a JSON karakterláncot a RapidJSON könyvtár használatával. A RapidJSON -t eredetileg a RapidXML ihlette. Ebben a példaprogramban egy JSON karakterláncot elemezünk a DOM -ba. A Document típusú mydoc -t deklaráltuk, majd a mydoc.parse () metódussal elemeztük a JSON karakterláncot.
#befoglalni#include 'rapidjson/write.h'
#include 'rapidjson/document.h'
#include 'rapidjson/stringbuffer.h'
rapidjson névtér használatával;
intfő-()
{
const char*json= '{'keresztnév':'Sean','vezetéknév':'Barna','empId': 21453,
'osztály':'Számítógép Sc.'}';
// A JSON karakterlánc elemzése DOM -ba
Dokumentálja a mydoc -t;
mydoc.Elemzés(json);
// DOM karakterláncra
StringBuffer puffer;
Író<StringBuffer>író(puffer);
mydoc.Elfogad(író);
// A kimenet kinyomtatása
órák::költség <<puffer.GetString() <<órák::endl;
Visszatérés 0;
}
Következtetés
Ebben a cikkben röviden tárgyaltunk JSON adatok, objektumok, tömbök és szintaxisok. Mint tudjuk, nincs natív megoldás a JSON -adatok elemzésére a C ++ nyelven; két különböző könyvtárat használtunk a JSON adatok C ++ nyelvű elemzésére. Három különböző példát vizsgáltunk, hogy bemutassuk a JSON adatok elemzési mechanizmusát C ++ nyelven. A nlohmann könyvtárhoz képest a RapidJSON kicsi, gyors és memóriabarát.