JSON-syöte

C++-tulos

Mikä on JSON C++ -muunnin?

C++:ssa ei ole sisäänrakennettua JSON-tukea. Kirjastot kuten nlohmann/json tai RapidJSON hoitavat jäsentämisen. Tämä työkalu generoi C++-rakenteita ja luokkia JSON:istasi, jotta voit kuvata datan tyypitettyihin rakenteisiin. JSON-määrittely määrittelee syötemuodon.

Muunnos tapahtuu selaimessasi. Aseta struct-nimi ja valinnaisesti nimiavaruus asetuspaneelista. Mitään ei lähetetä palvelimelle. Generoidut tyypit toimivat C++11:n ja uudempien kanssa. Tavalliselle C:lle käytä JSON C-muunnin.

Miten työkalua käytetään

1

Liitä tai lataa JSON

Liitä JSON tai lataa tiedosto. Aseta struct-nimi ja valinnaisesti nimiavaruus asetuspaneelista. Virheellinen JSON näyttää virheen. Käytä JSON-tarkistin tarkistaaksesi syntaksin ensin.

2

Tarkista C++-tulos

Oikea paneeli näyttää generoidut C++-rakenteet. Lisää include-direktiivit nlohmann/json:lle tai RapidJSON:lle ja jäsentämislogiikka tarpeen mukaan. Taulukoista tulee std::vector tai vastaavia säilöjä.

3

Kopioi tai lataa

Käytä Kopioi tai Lataa tiedostona. JSON:in muotoiluun ensin käytä JSON-muotoilija. Validointiin käytä JSON-tarkistin.

JSON C++ -muunnin esimerkkejä

Tässä esimerkki C++-rakenteiden generoinnista JSON-objektista.

Esimerkki: Tilaajatietue

JSON-syöte:

Syöte

Generoitu C++-tulos:

Tulos

Milloin JSON C++ -muunnin auttaa

Kun rakennat C++-sovelluksia, pelimoottoreita tai sulautettuja järjestelmiä, jotka käyttävät REST-rajapintoja tai asetustiedostoja, tarvitset tyypitettyjä rakenteita JSON:ille. Liittämällä näytteen tähän saat C++-rakenteita ja luokkia, joita voit käyttää nlohmann/json:in tai RapidJSON:in kanssa. Monimutkaisen sisäkkäisen JSON:in tyyppien manuaalinen kirjoittaminen on työlästä; työkalu päättelee rakenteen näytteestäsi. Tiettyjen arvojen poimimiseen ensin käytä jq:ta.

Usein kysyttyä

Mitä JSON-kirjastoa kannattaa käyttää?

nlohmann/json on vain otsikot sisältävä ja helppo integroida. RapidJSON on nopeampi suurille kuormituksille. Molemmat ovat laajasti käytettyjä. nlohmann/json:lla on yksinkertaisempi rajapinta; RapidJSON soveltuu paremmin suorituskykyä vaativaan jäsentämiseen.

Tukeeko se sisäkkäisiä objekteja?

Kyllä. Sisäkkäisistä JSON-objekteista tulee sisäkkäisiä rakenteita. Taulukoista tulee std::vector tai vastaavia säilöjä. Generaattori tukee mielivaltaista sisäkkäisyyssyvyyttä.

Onko datani yksityistä?

Kyllä. Generointi tapahtuu kokonaan selaimessasi. Mitään JSON:ia tai koodia ei lähetetä palvelimelle.

C++11 vai C++17?

Generoitu koodi käyttää standardeja C++-ominaisuuksia. std::vector ja std::string toimivat C++11:n kanssa. nlohmann/json tukee C++11:tä ja uudempia. Valinnaisille kentille käytä std::optional (C++17) tai kirjastoa.

Voinko käyttää Qt:n tai Unrealin kanssa?

Kyllä. Generoidut rakenteet ovat tavallista C++:aa. Qt:lla on QJsonDocument; Unrealilla on oma JSON-käsittelynsä. Voit mukauttaa generoidut tyypit tai käyttää niitä sellaisenaan nlohmann/json:in kanssa.

Liittyvät työkalut

nlohmann/json. RapidJSON. JSON-määrittely. MDN JSON. cppreference.