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:
- JSON-tietojen tulisi aina olla avain-arvo-parien muodossa.
- JSON-tiedot erotetaan pilkuilla.
- Curly-aaltosuljinta käytetään kuvaamaan JSON-objektia.
- 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:
- https: // github.com / nlohmann / json
- 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:
- Esimerkki 1: Jäsennä JSON C: ssä++
- Esimerkki 2: JSON: n jäsentäminen ja sarjallisuus C: ssä++
- Esimerkki 3: Jäsennä JSON C: ssä++
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
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.