fixmint
HU

A leggyakoribb JSON-hibák, és hogyan javítsd ki őket

Szerző: · · frissítve: 2026. november 8. · 5 perces olvasás

A JSON-elemzési hibák többsége néhány gyakori hibából ered: felesleges vessző, egyszeres idézőjelű szöveg, megjegyzés, idézőjel nélküli kulcs, olyan érték, mint a NaN vagy az undefined, vagy dokumentumból bemásolt okos idézőjelek. A JSON szigorúbb, mint a hozzá hasonló JavaScript, ezért az elemző olyan kódot is elutasíthat, amely embernek jónak tűnik. A hibaüzenet sort és oszlopot ad meg, a javítás pedig általában ezen a helyen van, vagy közvetlenül előtte.

JSON formázóA JSON nem olvasható bePróbáld ki ingyen

A JSON szabályai

A JSON-dokumentum egyetlen érték: kapcsos zárójelek közötti objektum, szögletes zárójelek közötti tömb, szöveg, szám, true, false vagy null. Ezeken belül:

  • Minden kulcs és szöveg egyenes dupla idézőjelet használ, például "name".
  • A vesszők választják el az elemeket, és az objektum vagy tömb utolsó eleme után nem állhat vessző.
  • A számok elé nem írható plusz jel, a NaN, az Infinity és az undefined pedig nem érvényes számok vagy értékek.
  • Megjegyzés egyáltalán nem engedélyezett.
  • A kulcsoknak szövegnek kell lenniük, így az idézőjel nélküli kulcs, például name:, érvénytelen.

Egyes elemzők alapértelmezés szerint elfogadnak néhányat ezekből, és egyes eszközök kényelmi okból megjegyzéseket is elfogadnak a JSON-ban. Ez a megengedőség addig rejti el a problémát, amíg a fájl egy szigorúbb olvasóhoz nem jut, ezért a szigorú formát írd meg.

A hibaüzenet olvasása

Az elemzők azon a helyen jelzik a hibát, ahol először nem tudtak folytatni. Az üzenet megnevezi a problémát, és megad egy pozíciót, általában sort és oszlopot. Íme egy kis fájl, amelyben a tömbben van felesleges vessző, és az utolsó tulajdonság után is van egy:

{
  "name": "Ada",
  "tags": ["a", "b",],
}

A Python ezt így jelzi: „Illegal trailing comma before end of array: line 3 column 20”. Az üzenet szövege eszközönként eltér, egyes régebbi elemzők pedig csak az „Unexpected token” üzenetet adják, karakter-eltolással. Menj a jelzett pozícióhoz, és nézd meg az előtte álló karaktert. A valódi hiba gyakran egy-két karakterrel a jelzett hely előtt van: vessző, idézőjel vagy zárójel.

A Python elemzőjének néhány további üzenete, és ezek általános jelentése:

  • „Expecting property name enclosed in double quotes” a '{'a': 1}' esetén egyszeres idézőjeles vagy idézőjel nélküli kulcsot jelent.
  • „Expecting value” olyan helyen, ahol számot vagy szöveget vártál, gyakran okos idézőjelet jelent, mert az elemző ismeretlen karakterként látja.
  • „Expecting ',' delimiter” általában hiányzó vesszőt jelent két elem között, vagy megjegyzést az adatok közepén.

Okos idézőjelek és bemásolt szöveg

Az okos idézőjelek a legzavarbaejtőbbek, mert majdnem ugyanúgy néznek ki, mint az egyenes idézőjelek. Szövegszerkesztőből, weboldalról vagy chatüzenetből másolt JSON-fájl görbe dupla idézőjeleket tartalmazhat. A fájl szemmel helyesnek látszik, mégis elhasal az elemzésnél, mert az elemző a “x” jelet ismeretlen karakterként látja, nem szövegkezdő vagy -záró jelként.

A rejtett karakterek hasonló hibát okoznak. Két érték között a nem törő szóköz az elemző számára nem üres hely. Távolítsd el a rejtett karaktereket, mielőtt kézzel javítanád a szerkezetet, majd igazítsd az idézőjeleket. Az idézőjelek javításáról szóló útmutató megmutatja, hogyan egyenesítsd ki őket biztonságosan.

Egyszeres idézőjelek, megjegyzések és idézőjel nélküli kulcsok

Sok fejlesztő olyan nyelven ír JSON-szerű adatot, amely többet enged meg:

  • Az egyszeres idézőjel érvényes a JavaScript- és Python-literálokban, de a JSON kettős idézőjelet kér. Cseréld le a {'a': 1}-et {"a": 1}-re.
  • A megjegyzéseket, például a // vagy /* */ jeleket, törölni kell. Ha szükséged van jegyzetekre, tedd őket külön mezőbe, vagy használj konfigurációs fájloknak készült formátumot.
  • Az idézőjel nélküli kulcsok gyakoriak a JavaScript-objektumliterálokban. Tedd köréjük az idézőjelet.
  • A NaN és az undefined nem JSON. Hiányzó érték helyett használd a null-t, ha pedig szöveg az érték, akkor szöveget.

Óvatosan használj általános keresés-csere műveletet. Ha minden egyszeres idézőjelet kettősre cserélsz, elromlik minden olyan szöveg, amely aposztrófot tartalmaz, például "Ada's notes". Előbb nézd meg minden találatot a keresés és csere eszközzel, hogy lásd, mely idézőjelek változnának.

A szerkezet javítása lépésről lépésre

  1. Illeszd be a fájlt a JSON formázóba. A formázás láthatóvá teszi a szerkezetet, a hiba pedig megmutatja a sort és az oszlopot. Ezután kattints a Javítás gombra, amely eltávolítja a megjegyzéseket és a felesleges vesszőket. Az egyszeres és az okos idézőjeleket nem módosítja, ezeket neked kell javítanod.
  2. Csak az első hibát javítsd, majd ellenőrizz újra. Egy hiba később több további hibát okozhat.
  3. Ellenőrizd, hogy minden nyitó kapcsos vagy szögletes zárójelhez tartozik záró, és az egymásba ágyazás azt tükrözi, amit szeretnél.
  4. Ellenőrizd a kész fájlt az alkalmazásod elemzőjével, ne csak webes eszközzel. Az elemzők kissé eltérhetnek.

Az elemző által elfogadott fájl nem feltétlenül az, amit szántál. Ellenőrizd JSON Schema-val, hogy kiszűrd a hiányzó mezőt vagy a rossz típusú értéket, vagy hasonlíts össze két JSON-dokumentumot, hogy lásd, mi változott a verziók között.

Szélsőséges esetek

  • Felesleges vesszők generált fájlokban. Egyes eszközök ilyeneket írnak. Ha kézzel állítasz össze JSON-szöveget, használd a nyelved szerializálóját, amely érvényes kimenetet ír.
  • Duplikált kulcsok. A JSON megengedi őket, de a legtöbb elemző csak az utolsó értéket tartja meg. A duplikált kulcsok későbbi hibák forrásai.
  • Nagy számok. Nagyon nagy egész számok egyes elemzőkben pontosságot veszíthetnek, ezért az azonosítókat szövegként tárold, ha hosszabbak annál, amit az elemző pontosan ábrázolni tud. A CSV-ből JSON-ba útmutató ugyanezt mondja az azonosítókról.

Gyors válaszok

Miért hibás a JSON, ha helyesnek látszik?

A szokásos okok: felesleges vessző, egyszeres idézőjel, megjegyzés, vagy a dokumentumból másolt okos idézőjel. Ellenőrizd a hibaüzenetben megadott pozíciót és az előtte álló karaktert.

Lehet a JSON-ban megjegyzés?

Nem. A JSON-szabvány nem engedi meg a megjegyzéseket. Töröld őket, vagy tedd a megjegyzést külön mezőbe. A formázó Javítás gombja eltávolítja őket helyetted.

Mit használjak az undefined helyett a JSON-ban?

Használd a null-t, ha egy érték szándékosan hiányzik, vagy hagyd ki a kulcsot teljesen. Az undefined JavaScript-érték, és nincs JSON-ábrázolása.

A Angol eredeti alapján, MI segítségével fordítva.

Hozzászólások

    Még nincs hozzászólás. Legyél te az első.

    Az értékelésed (nem kötelező)

    Az e-mail-címed sosem jelenik meg, és nem tároljuk.

    How to Remain Valuable When Intelligence Becomes Cheap borítójaHow to Remain Valuable When Intelligence Becomes Cheap

    224 oldal arról, hogy mely emberi, gazdasági és stratégiai előnyök maradnak ritkák akkor is, amikor az MI a legtöbb szellemi munkát elvégzi.

    $3.84Megvásárlás a GumroadonAngolul