FAQ k používání nástrojů: data, soubory a export
Nahrávají se data, jak velký soubor funguje, ukládá se něco lokálně, proč se čínština mění na escape sekvence: deset otázek, které vysvětlují skutečné hranice online nástroje pro JSON.
Shromažďuje nejčastější otázky k nástrojům na tomto webu a ke specifikaci JSON, rozdělené podle scénářů, s odpovědí, podle které můžete jednat přímo, místo vágního závěru.
25 článkůNahrávají se data, jak velký soubor funguje, ukládá se něco lokálně, proč se čínština mění na escape sekvence: deset otázek, které vysvětlují skutečné hranice online nástroje pro JSON.
Zda jsou komentáře povoleny, proč koncová čárka chybuje, zda klíče potřebují uvozovky, proč se 9007199254740993 mění – dvanáct závěrů, každý ověřený proti RFC 8259.
Zda má dotazování cest používat JSONPath, nebo Pointer, jak volit mezi Patch a Merge Patch, co Schema umí zablokovat a jak vybrat verzi návrhu – vše v jednom průchodu.
Proč se soubor JSON o desítkách MB neotevře, kolik stojí hluboké klonování, jak zabránit znečištění __proto__ a kudy proniká XSS – deset závěrů první pomoci seřazených podle příznaku.
Styl pojmenování, formáty času, sémantika null, tvary výčtů, formáty konfigurace, organizace fixtures a konflikty při slučování – dvanáct kompromisů, o kterých se týmy skutečně hádají.
RFC 8259 nemá syntaxi pro komentáře, takže `//` a blokové komentáře způsobí, že `JSON.parse` vyhodí chybu. Použijte JSON5 nebo JSONC, pole `_comment`, `description` ve Schema, nebo YAML.
Koncové čárky jsou legální v objektových literálech JavaScriptu a fatální v JSON. Zde je přesná chyba, gramatika RFC 8259, která ji způsobuje, a tři opravy, které skutečně drží.
UTF-8 BOM jsou tři neviditelné bajty, takže `JSON.parse` selže už na prvním znaku a hlásí řádek 1, sloupec 1, což soubor nechá vypadat prázdný nebo zkrácený.
JSON má jen desetinné číselné literály. `JSON.stringify` mění NaN a Infinity na null bez varování, a proto se v produkci stále objevuje „číslo pole je někdy null“.
Celá čísla nad 2^53-1 ztrácejí přesnost v `JSON.parse`. Snowflake ID, čísla objednávek i bigint primární klíče databází to zasahuje, proto je udržujte jako řetězce od začátku do konce.
Escape sekvence `\u4e2d\u6587` je legální Unicode, nikoli selhání kódování. Skutečný mojibake vypadá jinak a rozlišení rozhoduje o tom, co vlastně potřebujete opravit.
Přísné nadmnožiny v pořadí: JSONC přidává komentáře; JSON5 přidává jednoduché uvozovky, klíče bez uvozovek, koncové čárky a hexadecimální čísla. Špatná volba rozbije API, ne váš editor.
JSON vymezuje závorkami a YAML odsazením: stroje dostanou JSON, lidé upravující konfiguraci YAML. Komentáře, kotvy a struktura více dokumentů nepřežijí.
JSON Pointer je jedinečná adresa, kterou lze uložit jako klíč; JSONPath je dotazovací jazyk. Použití špatného rozbíjí aktualizace konfigurace, nebo znovu vynalézá rozbitý JSONPath.
Schema řídí strukturu a typy, nikoli obchodní význam. Zastaví chybějící pole, špatné typy a výčty mimo rozsah, zatímco pravidla jako částka nad nulou zůstávají v kódu.
2020-12 je aktuální a přidává `$defs`, `prefixItems` a `unevaluatedProperties`, ale mnoho nástrojů stále umí jen draft-07. Vybírejte podle toho, co podporuje celý váš nástrojový řetězec.
json-schema-to-typescript a quicktype vypíší .d.ts jedním příkazem, ale je to koncept: volitelnost, sjednocení, `additionalProperties` a data potřebují lidský zásah.
Optimalizace ve špatném pořadí znehodnotí každou výměnu knihovny. Měřte síť, parsování a vykreslování zvlášť, poté snižte počet parsování, zmenšete payloady a streamujte.
`JSON.parse` považuje `__proto__` za obyčejný klíč; škoda vzniká v rekurzivním sloučení, které zapisuje do `Object.prototype`, takže každý objekt zdědí vlastnosti útočníka.
JSON se sám nikdy nevykonává. XSS vzniká ve chvíli, kdy ho ošetříte jako HTML – spojováním řetězců na serveru, frontendovým innerHTML nebo vložením JSON přímo do značky skriptu.
Nemusíte číst zásady soukromí, abyste to zjistili. Otevřete panel Network, zkuste stránku offline a obnovte ji, abyste viděli, zda něco přetrvalo. Dvě minuty, tři kontroly, žádná důvěra není nutná.
Neexistuje žádný pevný limit; omezením je paměťový rozpočet vaší záložky. 20MB soubor obvykle po parsování zabere 60–100 MB a zvýrazněný DOM to může znovu zdvojnásobit.
Samotné objekty jsou čisté, dokud nepotřebujete metadata; plné obálky jsou bezpečné, ale upovídané. Pro většinu projektů použijte HTTP status pro výsledek a stabilní obálku pro data.
Epochy i řetězce ISO mají kompromisy, ale to, co věci skutečně rozbíjí, je jejich míchání. Použijte ISO 8601 s offsetem, ukládejte UTC, zobrazujte v časovém pásmu uživatele.
`null` říká, že pole existuje bez hodnoty; vynechání říká, že pole neexistuje. Těla PATCH, slučování konfigurace a předvyplnění formulářů jsou místa, kde rozdíl kouše.