Znění hlášky v jednotlivých prostředích
Většina parserů koncovou čárku nepojmenuje. Hlásí až to, co po ní chybí: název další vlastnosti nebo další hodnotu.
Hláška Expected double-quoted property name proto nemusí znamenat klíč bez uvozovek.
Podívej se na znak před hlášenou pozicí: pokud je to čárka a za ní }, jde
o koncovou čárku. .NET nabízí AllowTrailingCommas v
JsonDocumentOptions a JsonSerializerOptions. To je rozšíření parseru,
ne standardní JSON.
Příčiny a opravy
Čárka za poslední položkou objektu
{"a": 1} Čárka v JSON odděluje položky, ne ukončuje. Nejčastěji vznikne ručním skládáním řetězce nebo smazáním poslední položky v editoru. Použij serializátor místo skládání řetězců. Regulární výraz na odstranění čárek může poškodit obsah řetězců.
Čárka za posledním prvkem pole
[1, 2]
U pole hlásí V8 i Firefox neočekávaný znak ] a WebKit přímo čárku na konci pole.
Starší Python čeká další hodnotu, proto píše Expecting value, stejně jako
u prázdného vstupu.
Když stejný soubor funguje v editoru, ale selže v API
Editor může číst konfiguraci podle pravidel JSONC, zatímco server očekává JSON. Přijetí souboru editorem tedy není ověření formátu pro API. Zjisti, který program soubor vytváří, a nech jej vypsat standardní JSON. JSON5 a JSONC koncové čárky povolují, ale API požadující standardní JSON se jimi neřídí.
Čárky uvnitř uvozovek jsou součástí textu a musí zůstat zachované. Po opravě poslední čárky zkontroluj i komentáře, jednoduché uvozovky a neuzavřené závorky. Rozdíly vysvětluje JSON, JSON5 a JSONC.