UltKit

JSON-mótari og villuleit

Límdu inn JSON til að setja það upp á læsilegan hátt, þjappa því saman eða raða lyklunum. Ef ekki tekst að þátta það sýnir mótarinn línuna og dálkinn þar sem þáttarinn gafst upp, með vísi undir vandanum, svo það tekur aðeins nokkrar sekúndur að finna kommu sem vantar í 3.000 lína svari.

Úttak

0 stafir · 0 orð · 0 línur

0 stafir · 0 orð · 0 línur

Keyrir alfarið í þessum vafraflipa. Textinn þinn er aldrei sendur inn eða vistaður.

Gildisgerðir í JSON

RFC 8259 leyfir nákvæmlega þessi gildi. Hlutir og fylki geta verið hreiðruð; allt annað eru laufgildi.

GerðDæmiRegla
Hlutur{"id": 7, "tags": ["a"]}Lyklar verða að vera strengir í tvöföldum gæsalöppum; stök eru aðskilin með kommum og engin komma á eftir síðasta staki.
Fylki[1, "two", null]Raðaður listi hvaða gilda sem er, blandaðar gerðir leyfðar.
Strengur"caf\u00e9 \"quoted\""Aðeins tvöfaldar gæsalappir; stjórnstafir verða að vera undanskildir; \u-undanskot nota fjóra sextándakerfisstafi.
Tala-12.5e3Aðeins tugakerfi: valfrjálst mínus, engin núll í upphafi, valfrjáls brot og veldisvísir. Ekkert NaN eða Infinity.
true, false og nulltrueLágstafir, án gæsalappa.

Hverju þáttarinn hafnar

Hvert inntak hér að neðan var sent í sama JSON.parse og sniðillinn notar þegar þessi síða var búin til.

InntakVandamálJSON.parse
{"a": 1,}Komma í lokinHafnað
{'a': 1}Strengir í einföldum gæsalöppumHafnað
{"a": 1 /* note */}AthugasemdirHafnað
{a: 1}Lykill án gæsalappaHafnað
{"n": NaN}NaN er ekki JSON-talaHafnað
{"n": 012}Núll í upphafiHafnað
{"n": 0x1F}SextándakerfistalaHafnað

Undanskot í JSON-strengjum

StafurRitað í JSON
Tvöföld gæsalappir"\""
Bakstrik"\\"
Línufærsla"\n"
Tab"\t"
Vagnskil"\r"
Stjórnstafur U+0001"\u0001"
Skástrik (undanskot valfrjálst)"/"
Stafur utan ASCII (undanskot óþarft)"é"

Reglurnar sem gilt JSON-skjal fylgir

JSON er skilgreint í RFC 8259 (í reynd eins og ECMA-404). Skjal er eitt gildi: hlutur, fylki, strengur, tala, true, false eða null. Lyklar í hlutum eru alltaf strengir innan tvöfaldra gæsalappa. Strengir nota eingöngu tvöfaldar gæsalappir og þar þarf að hafna gæsalöppum, bakstriki og öllum stýristöfum fyrir neðan U+0020; tabbar og línuskil innan strengs eru því skrifuð sem \t og \n. RFC 8259 krefst einnig UTF-8 fyrir JSON sem er skipst á milli kerfa.

Tölur eru í tugakerfi: engin núll fremst, engin sextándakerfi, ekkert NaN eða Infinity og ekkert plúsmerki fremst. Sniðið hefur engar athugasemdir og engin aukakomma í lokin. Þessar tvær síðustu reglur valda flestum villum í raun, því JavaScript-hlutaritun, JSON5 og margar stillingarskrár leyfa hvort tveggja. Tilvísunartaflan hér að neðan varð til með því að senda hver algeng mistök í sama þáttara og sniðillinn notar.

Snyrta, þjappa, raða

Fegruð framsetning bætir við línuskilum og inndrætti svo uppbyggingin sé læsileg; tvö bil eru algengasti stíllinn í JavaScript-verkefnum, fjögur bil eru venjulegt val með json.dumps(indent=4) í Python og tabbar leyfa hverjum lesanda að velja breidd. Smækkun fjarlægir öll óþörf bil, sem minnkar API-gögn og kemur skjali fyrir á einni línu í annálum eða umhverfisbreytum.

Raða lyklum raðar innihaldi allra hluta í stafrófsröð, endurkvæmt. JSON-hlutir eru óraðaðir samkvæmt skilgreiningu, svo röðun breytir ekki merkingu, en hún auðveldar mjög að bera saman tvö skjöl úr ólíkum kerfum. Athugið að þáttun breytir tölum í JavaScript-tvöfaldar tölur: heiltölur yfir 2^53 (9.007.199.254.740.992), til dæmis sum auðkenni í gagnagrunnum, missa nákvæmni þegar þær eru endursniðnar, svo geymið þær sem strengi.

Úr JSON í önnur snið

Sniðið skjal er auðveldara að lesa, en stundum þarf það í annarri mynd. Fylki af hlutum verður að töflureikni með JSON í CSV og gagnabreytirinn flytur heilar skrár milli JSON, XML, YAML og CSV.

Algengar spurningar

Af hverju hafnar mótarinn JSON með athugasemdum?
Venjulegt JSON hefur enga setningafræði fyrir athugasemdir; RFC 8259 sleppir þeim af ásettu ráði. Fjarlægið athugasemdirnar, eða haldið skránni sem JSONC eða JSON5 ef tólið sem les hana styður þau snið.
Hvað þýðir „Unexpected token“ í JSON-villu?
Þáttarinn rakst á staf sem má ekki vera á þessum stað, til dæmis einfalda gæsalöppu, aukakommu á undan } eða lykil án gæsalappa. Línan og dálkurinn sem sýnd eru benda á þann staf.
Breytir röðun lykla gögnunum mínum?
Nei. Röð í hlutum skiptir engu máli í JSON, svo raðaða skjalið er jafngilt. Röð í fylkjum skiptir máli og er aldrei breytt.
Af hverju breyttist löng tala eftir sniðun?
JavaScript geymir tölur sem 64 bita fleytitölur, sem sýna heiltölur nákvæmlega aðeins upp að 2^53. Stærri auðkenni eru námunduð við þáttun; sendið þau sem strengi til að halda hverjum tölustaf.
Get ég sniðið JSON-skrá í stað þess að líma hana inn?
Opnið skrána í hvaða textaritli sem er, veljið allt og límið hér. Mjög stórar skrár, tugir megabæta, geta gert flipann hægan á meðan textareiturinn birtir þær.