JSON-syöte

Go-tulos

Mikä on JSON Goksi?

Olet juuri kutsunut REST-APIa Postmanissa, vastaus on JSON, ja sinun täytyy purkaa se Go:ssa — mutta struktuurin kirjoittaminen käsin syvälle sisäkkäiselle vastaukselle on todella tylsää. JSON ja Go:n encoding/json-paketti toimivat hyvin yhdessä, mutta Go vaatii eksplisiittiset struktuurimäärittelyt jokaiselle sisäkkäiselle objektille. Kentän unohtaminen tai tyypin virheellinen määrittely saa unmarshalin palauttamaan nolla-arvoja hiljaisesti. Tämä työkalu luo koko struktuuripuun JSON:stasi, valmiina liitettäväksi suoraan projektiisi.

Tämä työkalu generoi Go-struktuureja JSON:stasi. Aseta struktuurin nimi ja paketti konfiguraatiopaneelissa. Ota JSON-tunnisteet käyttöön json:"kenttä_nimi"-syntaksille, jotta struktuurikentät kuvautuvat oikein camelCase- tai snake_case-avaimille. Ota osoittimet käyttöön valinnaisia tai nullable-kenttiä varten, jotta voit erottaa nolla-arvon ja puuttuvan arvon. Tulos on valmis liitettäväksi projektiisi ja käytettäväksi json.Unmarshal()-funktion kanssa.

Muunnos tapahtuu kokonaan selaimessasi. JSON:iasi ei koskaan lähetetä palvelimelle. Voit vahvistaa tämän avaamalla selaimen Verkko-välilehden työkalua käyttäessäsi.

Miten työkalua käytetään

1

Liitä tai lataa JSON

Kopioi JSON ja liitä se vasempaan editoriin. Voit myös klikata Lataa ladataksesi .json- tai .txt-tiedoston tietokoneeltasi. Käytä Esimerkki-painiketta ladataksesi esimerkkidatan testausta varten. Aseta konfiguraatiopaneelissa struktuurin nimi (esim. User) ja paketin nimi (esim. models). Ota JSON-tunnisteet käyttöön json:"avain"-struktuuritunnisteille. Ota osoittimet käyttöön valinnaisia tai nullable-kenttiä varten.

2

Tarkista generoidut struktuurit

Oikea paneeli näyttää generoidut Go-struktuurit. Sisäkkäisistä objekteista tulee sisäkkäisiä tai erillisiä struktuureja. Taulukoista tulee []Type. JSON-tunnisteet kuvautuvat struktuurikentistä JSON-avaimiin. Käytä json.Unmarshal(data, &v) jäsentääksesi JSON struktuuriin. Jos JSON:ssasi on virheellinen syntaksi, korjaa se ensin käyttämällä JSON-muotoilutyökalua tai JSON-tarkistinta.

3

Kopioi tai lataa

Käytä Kopioi siirtääksesi tuloksen leikepöydälle tai Lataa tiedostona tallentaaksesi sen .go-tiedostona. Liitä se Go-projektiisi. Saatat joutua lisäämään tuonteja tai säätämään pakettien nimiä projektisi rakenteen mukaan.

Esimerkkejä JSON Goksi

Tässä esimerkki Go-struktuurien generoinnista JSON-objektista.

Esimerkki: Tilaajatietue

JSON-syöte:

Syöte

Generoitu Go-tulos:

Tulos

Milloin JSON Goksi auttaa

Useimmat kehittäjät tarvitsevat tätä API-integraatioissa. Lähetät pyynnön Postmanin tai curlin kautta, ja vastaus tulee JSON:na. Liittäminen tähän antaa sinulle tyypitetyt struktuurit, joita voit käyttää heti encoding/json-paketin kanssa. Tiettyjen arvojen poimimiseen laajoista vastauksista jq toimii hyvin komentoriviltä.

Konfiguraatiotiedostot ovat toinen yleinen tapaus. config.json- tai settings.json-tiedosto sisäkkäisillä objekteilla tarvitsee usein Go-struktuurin tyyppiturvalliseen käyttöön. Jos sinun täytyy ensin yhdistää kaksi JSON-tiedostoa, on olemassa erillinen JSON-yhdistämistyökalu siihen.

Tietokantavienti MongoDB:stä, Firestoresta tai CouchDB:stä on tyypillisesti suuria JSON-massoja. Niiden ajaminen tämän kautta auttaa sinua ymmärtämään dokumentin rakennetta ja generoimaan Go-struktuureja tuontiskriptejä tai kyselyjä varten.

Usein kysyttyä

Miten generoin Go-struktuurit automaattisesti JSON:sta?

Liitä JSON tähän työkaluun ja se generoi Go-struktuurit heti. Ota JSON-tunnisteet käyttöön, jotta kenttien nimet kartoitetaan oikein JSON-avaimiin. Kopioi tulos Go-projektiisi — valmis käytettäväksi json.Unmarshal():n kanssa.

Miksi Go-struktuurit tarvitsevat JSON-tunnisteita?

Kenttien nimien on oltava vietyjä (isolla alkukirjaimella) JSON:ia varten. JSON käyttää usein camelCase- tai snake_case-muotoa. json:"kentänNimi"-tunniste kertoo encoding/json-paketille, mikä JSON-avain vastaa mitäkin kenttää. Ilman tunnisteita json.Unmarshal tekee kirjainkoosta riippumattoman vertailun ja saattaa hiljaisesti ohittaa kenttiä.

Lähetetäänkö dataani minnekään?

Ei. Kaikki tapahtuu selaimessasi — JSON ei koskaan poistu laitteeltasi. Voit tarkistaa tämän selaimen Verkko-välilehdeltä. Turvallinen myös tuotantodatalle.

Entä omitempty?

Lisää omitempty JSON-tunnisteeseen kentille, joita et halua tulokseen tyhjinä: json:"nimi,omitempty". Generaattori ei lisää sitä oletuksena — riippuu käyttötapauksesta, muokkaa tulosta generoinnin jälkeen.

Milloin käyttää osoittimia struktuurikentille?

Käytä *Type:ä valinnaisille tai nullable-kentille. Osoittimella puuttuva JSON-kenttä palauttaa nil:n, jonka voit tarkistaa. Ilman osoittimia saat nolla-arvon eikä tiedä, puuttuiko kenttä vai oliko se vain tyhjä.

Liittyvät työkalut

Go JSON:n käsittelyyn, katso encoding/json. JSON:lle, katso JSON-määrittely ja RFC 8259. Yleiskatsaukseen, katso MDN JSON. API-testaukseen, katso Postman. Go-struktuuritunnisteisiin, katso Go-spec. Katso myös jq JSON-käsittelyyn.