C ++

Kuinka jäsentää JSON C ++ ssa

Kuinka jäsentää JSON C ++ ssa
Tämän opetusohjelman tarkoituksena on ymmärtää JSON-tiedot ja miten jäsentää JSON-tietoja C: ssä++. Keskustelemme JSON-tiedoista, Object-, Array-, JSON-syntaksista ja käymme sitten läpi useita toimivia esimerkkejä ymmärtääksemme JSON-datan jäsentämismekanismin C: ssä++.

Mikä on JSON?

JSON on kevyt tekstipohjainen esitys jäsenneltyjen tietojen tallentamiseen ja siirtämiseen järjestetyllä tavalla. JSON-tiedot esitetään järjestettyjen luetteloiden ja avainarvoparien muodossa. JSON tarkoittaa JavaSkäsikirjoitus Oesine Nhoito. Kuten koko nimi osoittaa, se on johdettu JavaScriptistä. JSON-tietoja tuetaan kuitenkin useimmilla suosituilla ohjelmointikielillä.

Sitä käytetään usein tietojen siirtämiseen palvelimelta verkkosivulle. Jäsenneltyjen tietojen esittäminen JSON: ssa on paljon helpompaa ja puhtaampaa kuin XML.

JSON-syntaksisääntö

Tässä ovat JSON-syntaksisäännöt:

  1. JSON-tietojen tulisi aina olla avain-arvo-parien muodossa.
  2. JSON-tiedot erotetaan pilkuilla.
  3. Curly-aaltosuljinta käytetään kuvaamaan JSON-objektia.
  4. Neliöhaarukkaa käytetään kuvaamaan JSON-taulukkoa.

Mikä on JSON Data?

JSON-tiedot esitetään avainarvopareina. Tämä on samanlainen kuin sanakirja tai hash muilla ohjelmointikielillä.

"Nimi": "Drake"

Tämä on esimerkki yksinkertaisista JSON-tiedoista. Tärkeintä tässä on "nimi" ja "Drake" on vastaava arvo. Avain, i.e., "Nimi" ja arvo, ts.e., “Drake” erotetaan kaksoispisteellä.

JSON -tiedostotunniste

JSON-tiedot tallennetaan normaalisti tiedostoon laajennuksella ".json ”. Esimerkiksi työntekijän tietojen tallentamiseksi voit yksinkertaisesti nimetä tiedoston työntekijäksi.json '. Tämä olisi yksinkertainen tekstitiedosto. Tämän jälkeen voit avata tämän JSON-tiedoston missä tahansa suosikkitekstieditorissasi.

JSON-objekti

JSON-objekti ei ole muuta kuin JSON-data, joka on suljettu kiharoiden aaltosulkeisiin. Tässä on esimerkki JSON-objektista:


"Nimi": "Drake",
"Työntekijätunnus": "23547a",
"Puhelin": "23547",
"Osasto": "Rahoitus"

JSON-objekti voi sisältää useita JSON-tietoja. Jokainen JSON-data erotetaan pilkulla. JSON-tiedot esitetään avainarvopareina. Avain, i.e., "Nimi" ja arvo, ts.e., "Drake" erotetaan kaksoispisteellä. Yllä olevassa esimerkissä on neljä avainarvoparia. Ensimmäinen avain on "Nimi"; "Drake" on sille vastaava arvo. Vastaavasti kolme muuta näppäintä ovat ”EmployeeID”, “Phone” ja “Department”.

JSON-taulukko

JSON-taulukko voi sisältää useita pilkuilla erotettuja JSON-objekteja. JSON-taulukko on suljettu hakasulkeissa. 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, ts.e., taulukko, ja se sisältää neljä JSON-objektia. Jokainen näistä objekteista on esitetty avainarvopareina ja erotettu pilkulla.

Esimerkki JSON-tiedostosta

Nyt kun ymmärrimme JSON-tiedot, JSON-objektit, JSON-taulukon, katsotaanpa esimerkkiä JSON-tiedostosta:


“Etunimi”: “Sean”,
"Sukunimi": "ruskea",
“Opiskelijatodistus”: 21453,
"Osasto": "Tietokone Sc.”,
Aiheet: ["Matematiikka", "Phy", "Chem"]

Kirjastojen jäsentäminen C ++:

JSON-tietojen jäsentämiseen C: ssä ei ole natiiviratkaisua++. JSON-datan jäsentämiseen C: ssä on kuitenkin useita kirjastoja++. Tässä artikkelissa aiomme tutkia kahta suosituinta kirjastoa jäsentää JSON-tietoja C: ssä++. Tässä ovat GitHub-linkit JSON-tietojen jäsentämiseen:

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

Voit halutessasi ladata nämä kirjastot voidaksesi suorittaa alla esitetyt esimerkit.

Esimerkkejä

Nyt meillä on perustiedot JSON-tiedoista, objekteista, taulukoista ja käytettävissä olevista jäsentökirjastoista. Katsotaan nyt muutama esimerkki JSON-tietojen jäsentämiseksi C ++: ssa:

Esimerkeissä 1 ja 2 käytämme nlohmann-kirjastoa. Esimerkin 3 tapauksessa käytämme “RapidJSON” -kirjastoa.

Esimerkki 1: Jäsennä JSON C: ssä++

Tässä esimerkkiohjelmassa osoitamme, kuinka päästä JSON-tietojen arvoihin C: ssä++.

#sisältää
#include "json.hpp "
käyttämällä json = nlohmann :: json;
int main ()

// jdTyöntekijät
json jdTyöntekijät =

"etunimi", "Sean",
"sukunimi", "ruskea",
"StudentID", 21453,
"Osasto", "Tietojenkäsittelytiede."
;
// Käytä arvoja
std :: string fName = jdEmployees.arvo ("etunimi", "oho");
std :: string lName = jdEmployees.arvo ("sukunimi", "hups");
int sID = jd Työntekijät.arvo ("StudentID", 0);
std :: string dept = jdTyöntekijät.arvo ("osasto", "oho");
// Tulosta arvot
vakio :: cout << "First Name: " << fName << std::endl;
vakio :: cout << "Last Name: " << lName << std::endl;
vakio :: cout << "Student ID: " << sID << std::endl;
vakio :: cout << "Department: " << dept << std::endl;
paluu 0;

Esimerkki 2: JSON: n jäsentäminen ja sarjallisuus C: ssä++

Tässä esimerkkiohjelmassa aiomme nähdä, miten JSON jäsennetään ja sarjoitetaan C: ssä++. JSON-tietojen jäsentämiseen käytetään ”json :: parse ()”.

#sisältää
#include "json.hpp "
#sisältää
käyttämällä json = nlohmann :: json;
int main ()

// Tässä on JSON-teksti
merkkiteksti [] = R "(

"Kirja":
"Leveys": 450,
"Korkeus": 30,
"Otsikko": "Hei maailma",
"isBiography": väärä,
"NumOfCopies": 4,
"LibraryIDs": [2319, 1406, 3854, 987]


) ";
Jäsennetään ja sarjoitetaan JSON
json j_complete = json :: jäsentää (teksti);
vakio :: cout << std::setw(4) << j_complete << std::endl;

Esimerkki 3: Jäsennä JSON C: ssä++

Nyt näytetään, miten jäsennetään JSON-merkkijono käyttämällä RapidJSON-kirjastoa. RapidJSON innostui alun perin RapidXML: stä. Tässä esimerkkiohjelmassa jäsennämme JSON-merkkijonon DOM: iin. Olemme julistaneet "mydoc" -tyyppiseksi "Document" ja käyttäneet sitten "mydoc.parse () ”-menetelmä JSON-merkkijonon jäsentämiseksi.

#sisältää
#include "quickjson / kirjailija.h "
#include "quickjson / asiakirja.h "
#include "quickjson / stringbuffer.h "
käyttämällä nimitilaa quickjson;
int main ()

const char * json = "" etunimi ":" Sean "," sukunimi ":" ruskea "," empId ": 21453,
"osasto": "Tietokone Sc."";
// jäsennä JSON-merkkijono DOM: ksi
Asiakirja-asiakirja;
mydokki.Jäsennys (json);
// DOM merkkijonoon
StringBuffer-puskuri;
Kirjailija kirjoittaja (puskuri);
mydokki.Hyväksy (kirjailija);
// Tulosta tulosteet
vakio :: cout << buffer.GetString() << std::endl;
paluu 0;

Johtopäätös

Tässä artikkelissa olemme keskustelleet lyhyesti JSON-tiedoista, objektista, taulukosta ja syntaksista. Kuten tiedämme, JSON-datan jäsentämiseen C ++: ssa ei ole natiiviratkaisua; olemme käyttäneet kahta erilaista kirjastoa jäsentämään JSON-tietoja C: ssä++. Tarkastelimme kolmea erilaista esimerkkiä osoittamaan JSON-tietojen jäsentämismekanismi C: ssä++. Verrattuna “nlohmann” -kirjastoon, RapidJSON on pieni, nopea ja muistiystävällinen.

How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...