Suriin ang isang dokumento, i-print nang maayos sa indent na gusto mo, paliitin para ipadala, o ayusin ang lahat ng key ng bawat object para maikumpara ang dalawang bersiyon ng iisang file.
Dito binabasa ang dokumento sa halip na iabot sa sariling JSON reader ng browser, sa tatlong dahilan. Hindi maaasahang sinasabi ng parser ng browser KUNG SAAN ang mali — magkaiba ang pananalita at ang posisyon sa Chrome, Safari at Firefox — kaya hindi nito maituturo ang linya. Ginagawa nitong floating-point na halaga ang bawat numero, na nagro-round sa mahahabang id at nag-aalis ng mga zero sa dulo, kaya nasisira ang dokumentong pinaayos mo lamang. At tahimik nitong itinatapon ang paulit-ulit na pangalan ng property, na siya mismong uri ng tahimik na kamalian na sulit mahuli.
Ang string lamang ang isinusulat muli sa halip na panatilihin: nagiging A ang A. Nagbabago ang bytes pero hindi ang halaga, kaya walang nawawala — hindi katulad ng numero, kung saan tunay na magkaiba ang dalawa.
Ibinibigay ng pahina ang linya at ang hanay, ipinapakita ang linyang may problema, at naglalagay ng caret sa ilalim ng karakter na sumira nito. Karamihan sa error sa JSON ay nawawalang kuwit, kuwit sa dulo o hindi naisarang brace, at pawang hindi nakikita ang tatlo hanggang may tumuro sa kanila.
Dahil hindi ito pinapayagan ng JSON, kahit pinapayagan ng JavaScript, Python at ng karamihan sa config formats. Ito ang pinakakaraniwang error sa JSON. Pinapayagan ng JSON5 at JSONC ang trailing commas at comments — kung mayroon ang file mo ng alinman, hindi ito JSON, anuman ang sabi ng extension.
Hindi, at sinadya ito. Karamihan sa formatter ay ginagawang float ang numero at isinusulat itong muli, na tahimik na nagro-round ng mahabang id — ang 1234567890123456789 ay nagiging 1234567890123456800 — at ginagawang 1 ang 1.0. Pinapanatili nito ang bawat numero nang eksaktong gaya ng pagkakasulat mo, digit sa digit.
Hindi ipinagbabawal ng JSON ang parehong pangalan ng property nang dalawang beses sa isang object, at halos bawat parser ay tahimik na itinatago ang huli. Kaya ang {"amount": 500, "amount": 50} ay balidong dokumentong tahimik na nagiging 50. Natutukoy ito nito, sinasabi ang linya, at itinatago ang dalawa — hindi dapat ang formatter ang nagbura ng linya ng datos mo.
Hindi. Walang bisa ang pagkakasunod ng property sa JSON, kaya ang pinag-ayos na object ay parehong object pa rin. May bisa ang pagkakasunod ng array at hindi ito kailanman ginagalaw. Nakabatay sa character code ang pag-ayos at hindi sa locale, kaya ang parehong file ay pareho ang pagkakaayos sa bawat makina — ang pinag-ayos na file na may diff pa rin ay tatalo sa mismong layunin.
Hindi. Ang parser ay JavaScript na tumatakbo sa tab na ito, at walang kahilingang nagdadala ng dokumento mo. Mas mahalaga ito rito kaysa sa karamihan ng pahina, dahil ang JSON na ipinapasok ng mga tao sa formatter ay madalas tunay na sagot ng API na may tunay na rekord ng kostumer.
Wasto silang tatlo sa JavaScript at wala ni isang wasto sa JSON. Tinutukoy ang bawat isa sa kung ano ito sa halip na iulat bilang hindi inaasahang token.
Mga 15 makabuluhang digit ang kayang hawakan ng double. Anumang mas mahaba — id sa Twitter, Snowflake, sanggunian sa bangko — ay mali nang bumabalik mula sa formatter na dumadaan sa float.
Mahigpit na binabasa ang mga dokumento ayon sa RFC 8259. Ang JSON5 at JSONC — komento, kuwit sa dulo, key na walang panipi — ay iniuulat na kamalian sa halip na tanggapin. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.