Mikä on JSON?
JSON on kevyt tekstipohjainen esitys strukturoidun datan säilyttämiseksi ja siirtämiseksi organisoidulla tavalla. JSON-tiedot esitetään järjestettyjen luetteloiden ja avain-arvoparien muodossa. JSON tarkoittaa J ava S cript TAI bject N huomautus. Kuten koko nimi osoittaa, se on johdettu JavaScriptistä. JSON -dataa tuetaan kuitenkin useimmilla suosituilla ohjelmointikielillä.
Sitä käytetään usein tietojen siirtämiseen palvelimelta verkkosivulle. On paljon helpompaa ja puhtaampaa esittää jäsennettyä dataa JSONissa kuin XML: ää.
JSON -syntaksisääntö
Tässä ovat JSON -syntaksisäännöt:
- JSON-tietojen tulee aina olla avain-arvo-pareja.
- JSON Data erotetaan pilkuilla.
- JSON -objektia edustaa kihara ahdin.
- Hakasulkeella edustetaan JSON -taulukkoa.
Mikä on JSON Data?
JSON-tiedot esitetään avain-arvo-pareina. Tämä on samanlainen kuin sanakirja tai tiiviste muilla ohjelmointikielillä.
Nimi: Drake
Tämä on esimerkki yksinkertaisista JSON -tiedoista. Avain tässä on Nimi ja Drake on vastaava arvo. Avain eli Nimi ja arvo eli Drake erotetaan kaksoispisteellä.
JSON -tiedostopääte
JSON -tiedot tallennetaan tavallisesti tiedostoon .json -tunnisteella. Jos haluat esimerkiksi tallentaa työntekijän tiedot, voit nimetä tiedoston 'työntekijä.json'. Tämä olisi yksinkertainen tekstitiedosto. Voit sitten avata tämän JSON -tiedoston missä tahansa suosikkitekstieditoristasi.
JSON -objekti
JSON -objekti on vain JSON -data, joka on suljettu aaltosulkeisiin. Tässä on esimerkki JSON -objektista:
{Nimi:Drake,
henkilöstökortti:23547a,
Puhelin: 23547,
Osasto:Rahoittaa
}
JSON -objekti voi sisältää useita JSON -tietoja. Jokainen JSON -data erotetaan pilkulla. JSON-tiedot esitetään avain-arvo-pareina. Avain eli Nimi ja arvo eli Drake erotetaan kaksoispisteellä. Yllä olevassa esimerkissä on neljä avain-arvo-paria. Ensimmäinen avain on Nimi; Drake on sitä vastaava arvo. Samoin EmployeeID, Puhelin ja osasto ovat kolme muuta avainta.
JSON Array
JSON-taulukko voi sisältää useita pilkuilla erotettuja JSON-objekteja. JSON -taulukko on hakasulkeessa. Katsotaanpa esimerkkiä JSON -taulukosta:
'Opiskelijat':[{'etunimi':'Sean', 'sukunimi':'Ruskea'},
{'etunimi':'Drake', 'sukunimi':'Williams'},
{'etunimi':'Tom', 'sukunimi':'Miller'},
{etunimi:Peter,sukunimi:Johnson}
]
Tämä on esimerkki JSON -taulukosta. Tässä opiskelijat on suljettu hakasulkeella eli matriisilla, ja se sisältää neljä JSON -objektia. Jokainen näistä objekteista on esitetty avain-arvo-pareina ja erotettu toisistaan pilkulla.
Esimerkki JSON -tiedostosta
Nyt kun ymmärsimme JSON -tiedot, JSON -objektit, JSON -taulukon, katsotaan esimerkkiä JSON -tiedostosta:
{etunimi:Sean,
sukunimi:Ruskea,
opiskelijanumero: 21453,
Osasto:Tietokone Sc.,
Aiheet:[Matematiikka,Phy,Chem]
}
Kirjastojen jäsentäminen C ++: ssa:
Ei ole natiiviratkaisua JSON -datan jäsentämiseen C ++: ssa. On kuitenkin useita kirjastoja JSON -datan jäsentämiseen C ++: ssa. Tässä artikkelissa tarkastelemme kahta suosituinta kirjastoa JSON -datan jäsentämiseksi C ++: ssa. Tässä on GitHub -linkit JSON -tietojen jäsentämiseen:
Voit halutessasi ladata nämä kirjastot voidaksesi suorittaa alla olevat esimerkit.
Esimerkkejä
Nyt meillä on perustiedot JSON -tiedoista, objekteista, matriiseista ja käytettävissä olevista jäsennyskirjastoista. Katsotaanpa nyt muutamaa esimerkkiä JSON -datan jäsentämiseksi C ++: ssa:
- Esimerkki 1: jäsennä JSON C ++: ssa
- Esimerkki 2: Jäsennä ja sarjasta JSON C ++: ssa
- Esimerkki 3: jäsennä JSON C ++: ssa
Esimerkissä 1 ja esimerkissä 2 aiomme käyttää nlohmann-kirjastoa. Esimerkissä 3 käytämme RapidJSON-kirjastoa.
Esimerkki 1: jäsennä JSON C ++: ssa
Tässä esimerkkiohjelmassa osoitamme, miten pääset käsiksi JSON -tietojen arvoihin C ++: ssa.
#sisältää#include 'json.hpp'
käyttäen json=nlohmann::json;
inttärkein()
{
// jdTyöntekijät
json jdTyöntekijät=
{
{'etunimi','Sean'},
{'sukunimi','Ruskea'},
{'Opiskelijanumero',21453},
{'Osasto','Tietokone Sc.'}
};
// Pääsy arvoihin
tuntia::merkkijonofNimi=jdTyöntekijät.arvo('etunimi', 'Oho');
tuntia::merkkijonolNimi=jdTyöntekijät.arvo('sukunimi', 'Oho');
intsID=jdTyöntekijät.arvo('Opiskelijanumero', 0);
tuntia::merkkijonoosasto=jdTyöntekijät.arvo('Osasto', 'Oho');
// Tulosta arvot
tuntia::kustannus << 'Etunimi: ' <<fNimi<<tuntia::endl;
tuntia::kustannus << 'Sukunimi: ' <<lNimi<<tuntia::endl;
tuntia::kustannus << 'Opiskelijanumero: ' <<sID<<tuntia::endl;
tuntia::kustannus << 'Osasto:' <<osasto<<tuntia::endl;
palata 0;
}
Esimerkki 2: Jäsennä ja sarjasta JSON C ++: ssa
Tässä esimerkkiohjelmassa aiomme nähdä, kuinka jäsentää ja sarjoittaa JSON C ++: ssa. Käytämme json :: parse () jäsentämään JSON -tietoja.
#sisältää#include 'json.hpp'
#sisältää
käyttäen json=nlohmann::json;
inttärkein()
{
// Tässä on JSON -teksti
hiiltyäteksti[] =R'((
{
''Kirja': {
''Leveys': 450,
''Korkeus': 30,
''Otsikko':'Hei maailma',
''on elämäkerta': väärä,
''NumOfCopies': 4,
''KirjastoID': [2319, 1406, 3854, 987]
}
}
) '';
// jäsennellään ja sarjataan JSON
json j_complete=json::jäsentää(teksti);
tuntia::kustannus <<tuntia::setw(4) <<j_complete<<tuntia::endl;
}
Esimerkki 3: jäsennä JSON C ++: ssa
Nyt esittelemme kuinka jäsentää JSON -merkkijono RapidJSON -kirjaston avulla. RapidJSON on alun perin saanut inspiraationsa RapidXML: stä. Tässä esimerkkiohjelmassa jäsennämme JSON -merkkijonon DOM -muotoon. Olemme ilmoittaneet asiakirjan tyypin mydoc ja jäsentäneet sitten JSON -merkkijonon käyttämällä mydoc.parse () -menetelmää.
#sisältää#include 'rapidjson/written.h'
#include 'rapidjson/document.h'
#include 'rapidjson/stringbuffer.h'
käyttämällä nimitilaa rapidjson;
inttärkein()
{
const hiiltyä*json= '{'etunimi':'Sean','sukunimi':'Ruskea','empId': 21453,
''osasto':'Tietokone Sc.'}';
// jäsentää JSON -merkkijono DOM: ksi
Dokumentoi mydoc;
mydoc.Jäsentää(json);
// DOM merkkijonoksi
StringBuffer -puskuri;
Kirjailija<StringBuffer>kirjailija(puskuri);
mydoc.Hyväksyä(kirjailija);
// Tulosta tulostus
tuntia::kustannus <<puskuri.GetString() <<tuntia::endl;
palata 0;
}
Johtopäätös
Tässä artikkelissa olemme keskustelleet lyhyesti JSON data, objekti, matriisi ja syntaksi. Kuten tiedämme, C ++: ssa ei ole natiiviratkaisua JSON -tietojen jäsentämiseen; olemme käyttäneet kahta eri kirjastoa JSON -datan jäsentämiseen C ++: ssa. Tutkimme kolmea eri esimerkkiä osoittaaksemme JSON -tietojen jäsennysmekanismin C ++: ssa. Verrattuna nlohmann-kirjastoon RapidJSON on pieni, nopea ja muistiystävällinen.