JSON formateatzailea eta balidatzailea
Itsatsi JSONa formatu irakurgarrian jartzeko, txikitzeko edo gakoak ordenatzeko. Ezin bada analizatu, formateatzaileak analizatzaileak huts egin duen lerroa eta zutabea erakusten ditu, arazoaren azpian adierazle batekin; horrela, 3.000 lerroko erantzun batean falta den koma bat segundo gutxitan aurkitzen da.
0 karaktere · 0 hitz · 0 lerro
0 karaktere · 0 hitz · 0 lerro
Nabigatzaile-fitxa honetan bertan exekutatzen da. Zure testua ez da inoiz igotzen edo gordetzen.
JSON balio motak
RFC 8259k balio hauek soilik onartzen ditu. Objektuak eta arrayak habiratu daitezke; gainerako guztiak hostoak dira.
| Mota | Adibidea | Araua |
|---|---|---|
| Objektua | {"id": 7, "tags": ["a"]} | Gakoak komatxo bikoitzeko kateak izan behar dira; kideak komaz bereizten dira, eta azken koma ezin da egon. |
| Array-a | [1, "two", null] | Edozein baliotako zerrenda ordenatua, motak nahastuta egon daitezke. |
| Katea | "caf\u00e9 \"quoted\"" | Komatxo bikoitzak soilik; kontrol-karaktereek ihesbidea behar dute; \u ihesbideek lau digitu hexadezimal erabiltzen dituzte. |
| Zenbakia | -12.5e3 | Hamartarrak soilik: minus zeinu aukerakoa, zero hasierakorik ez, zati hamartar eta berretzaile aukerakoak. NaN edo Infinity ez. |
| true, false eta null | true | Minuskulaz, komatxorik gabe. |
Parseatzaileak baztertzen duena
Beheko sarrera bakoitza formatu-emaileak erabiltzen duen JSON.parse berberari pasatu zitzaion orri hau eraiki zenean.
| Sarrera | Arazoa | JSON.parse |
|---|---|---|
{"a": 1,} | Amaierako koma | Baztertua |
{'a': 1} | Komatxo bakarreko kateak | Baztertua |
{"a": 1 /* note */} | Iruzkinak | Baztertua |
{a: 1} | Komatxorik gabeko gakoa | Baztertua |
{"n": NaN} | NaN ez da JSON zenbaki bat | Baztertua |
{"n": 012} | Zero hasierakoa | Baztertua |
{"n": 0x1F} | Zenbaki hexadezimala | Baztertua |
JSON kateetako ihesbideak
| Karakterea | JSONen idatzita |
|---|---|
| Komatxo bikoitza | "\"" |
| Alderantzizko barra | "\\" |
| Lerro-jauzia | "\n" |
| Tabulazioa | "\t" |
| Orga-itzulera | "\r" |
| U+0001 kontrol-karakterea | "\u0001" |
| Barra zuzena (ihesbidea aukerakoa) | "/" |
| ASCII ez den letra (ihesbiderik ez da behar) | "é" |
JSON dokumentu baliodun batek bete behar dituen arauak
JSON RFC 8259 estandarrak zehazten du (funtsean ECMA-404 estandarraren berdina da). Dokumentu bat balio bakar bat da: objektu bat, array bat, kate bat, zenbaki bat, true, false edo null. Objektuen giltzak beti komatxo bikoitzen arteko kateak dira. Kateek komatxo bikoitzak soilik erabiltzen dituzte, eta komatxoa, alderantzizko barra eta U+0020 azpiko kontrol-karaktere guztiak ihes-karakterearekin idatzi behar dira; beraz, kate baten barruko tabulazioak eta lerro-jauziak \t eta \n gisa idazten dira. RFC 8259 estandarrak, gainera, sistemen artean trukatzen den JSONak UTF-8 erabiltzea eskatzen du.
Zenbakiak hamartarrak dira: ezkerreko zerorik gabe, hexadezimalik gabe, NaN edo Infinity gabe eta aurrean plus zeinurik gabe. Formatuak ez du iruzkinik ez azken komarik onartzen. Azken bi arau horiek eragiten dituzte benetako akats gehienak, JavaScript objektu-literalek, JSON5ek eta konfigurazio-fitxategi askok biak onartzen dituztelako. Beheko erreferentzia-taula akats arrunt bakoitza formatuzaileak berak erabiltzen duen analizatzailean sartuta sortu da.
Formatu irakurgarria eman, txikitu, ordenatu
Formatu irakurgarriak lerro-jauziak eta koskak gehitzen ditu egitura erraz irakurtzeko; bi zuriune dira JavaScript proiektuetan estilorik ohikoena, lau zuriune Pythonen json.dumps(indent=4) erabiltzean ohikoena, eta tabulazioek irakurle bakoitzak zabalera aukeratzen uzten dute. Minifikatzeak garrantzirik gabeko zuriune guztiak kentzen ditu: horrela APIen karga txikiagoa da eta dokumentua lerro bakarrean sartzen da, logetarako edo ingurune-aldagaietarako.
Giltzak ordenatzeak objektu bakoitzaren kideak alfabetikoki ordenatzen ditu, errekurtsiboki. JSON objektuak definizioz ez daude ordenatuta, beraz ordenatzeak ez du esanahia aldatzen, baina sistema desberdinetako bi dokumentu alderatzea askoz errazagoa egiten du. Kontuan izan analizatzeak zenbakiak JavaScript doubleetan bihurtzen dituela: 2^53 (9.007.199.254.740.992) baino handiagoko osoek, adibidez datu-baseetako ID batzuek, zehaztasuna galtzen dute berriz formatuz gero; beraz, gorde itzazu kate gisa.
JSONetik beste formatu batzuetara
Formatuko dokumentua irakurtzeko errazagoa da, baina batzuetan beste forma batean behar duzu. Objektu-array bat kalkulu-orri bihurtzen da JSON CSV bihurtu tresnarekin, eta datu bihurgailuak fitxategi osoak JSON, XML, YAML eta CSV artean mugitzen ditu.
Maiz egiten diren galderak
- Zergatik baztertzen du formateatzaileak iruzkinak dituen nire JSONa?
- JSON estandarrak ez du iruzkin-sintaxirik; RFC 8259k nahita utzi du kanpo. Kendu iruzkinak, edo gorde fitxategia JSONC edo JSON5 gisa, irakurtzen duen tresnak formatu horiek onartzen baditu.
- Zer esan nahi du «Unexpected token» mezuak JSON errore batean?
- Analizatzaileak posizio horretan egon ezin den karaktere bat aurkitu du, hala nola komatxo sinple bat, } baino lehenagoko azken koma bat edo komatxorik gabeko giltza bat. Erakusten den lerroak eta zutabeak karaktere horri egiten diote seinale.
- Gakoak ordenatzeak nire datuak aldatzen ditu?
- Ez. Objektuen kideen ordenak ez du esanahirik JSONen, beraz ordenatutako dokumentua baliokidea da. Arrayen ordena esanguratsua da eta ez da inoiz aldatzen.
- Zergatik aldatu da zenbaki luze bat formateatu ondoren?
- JavaScriptek zenbakiak 64 biteko koma higikor gisa gordetzen ditu, eta horiek osoak zehazki 2^53 arte bakarrik adierazten dituzte. ID handiagoak biribildu egiten dira analizatzean; bidali itzazu kate gisa digitu guztiak gordetzeko.
- JSON fitxategi bat formateatu dezaket itsatsi beharrean?
- Ireki fitxategia edozein testu-editorerekin, hautatu dena eta itsatsi hemen. Hamarnaka megabyteko fitxategi oso handiek fitxa mantsotu dezakete testu-eremuak erakusten dituen bitartean.