Ivvalida s-sintassi ta' JSON
- Dashboard
- Dokumentazzjoni
- API
Għal xiex jintuża validatur JSON?
Validatur JSONgħandu rwol aktar modest, iżda aktar preċiż, minn formatatur: ma jerġax jikteb xejn. Huwa jieħu string u jwieġeb mistoqsija binarja: dan it-test huwa konformi JSON? RFC 8259? Jekk iva, l-għodda tirritorna l-kontroll. Jekk le, tindika eżattament ir-ringiela, il-kolonna u estratt tal-JSON madwar il-problema, biex tgħin lill-iżviluppatur jiffissa immedjatament.
Fil-prattika, hija l-għodda li nużaw hekk kif parser x'imkien jirritorna messaġġ ta 'żball
kriptiku bħal SyntaxError: token mhux mistenni } f'JSON fil-pożizzjoni 217. Pjuttost milli
għodd il-karattri bl-idejn f'editur, waħħal is-sekwenza sħiħa, aqra l-pożizzjoni u ara
l-estratt offiżi.
Validazzjoni, ifformattjar: żewġ operazzjonijiet distinti
Ħafna drabi nħalltu t-tnejn. Il-formatter JSON tagħna jieħu JSON validu u
jerġa’ jikteb b’indentazzjoni li tinqara. Il-validatur huwa sodisfatt b'verdett sintattiku. Hu
ma jwettaqx validazzjoni semantika: ma jafx jekk il-valur ta' qasam email
qisu email, u lanqas jekk l-istruttura taqbel ma' Skema JSON. Għal dan, nużaw
għodod dedikati (ajv f'Node, justinrainbow/json-schema f'PHP).
Is-sekwenza klassika fid-debugging hija: valida l-ewwel (l-għodda tindika l-iżball tas-sintassi), format imbagħad (it-tagħbija li issa valida ssir tinqara), qabbel finalment ma' tagħbija ta' referenza oħra permezz tal-komparatur JSON tagħna.
L-iżbalji JSON l-aktar komuni
- Vigola ta' wara:
{"a": 1, "b": 2,}. Tollerat minn JavaScript, ECMAScript u JSON5; miċħuda minn JSON pur. Dan huwa l-iżball #1 meta tikkopja u tippejstja minn editur tal-kodiċi. - Apostrofi minflok kwotazzjonijiet doppji:
{'a': 1}mhux validu. JSON jaċċetta biss kwotazzjonijiet doppji, madwar ċwievet u valuri string. - Ċwievet mhux ikkwotati:
{a: 1}, sintassi JavaScript valida iżda JSON mhux validu. - Karattri ta' kontroll mhux maħruba fi string: linja ġdida mhux maħduma, a
tabulazzjoni. JSON jeħtieġ
,,. - Kummenti:
// kummentjew/* */. Aċċettat f'JSONC (Konfig VS Code) jew JSON5, miċħuda f'JSON pur. - Kodifikazzjoni mhux korretta: BOM UTF-8 fil-bidu tal-fajl, kontenut Latin-1 mhux korrett konvertiti. Il-validatur spiss jirritorna messaġġ ġeneriku għal dawn il-każijiet.
- Struttura mhux mitmuma:
{jew[mingħajr għeluq, komuni meta taqta' tagħbija meta tikkopja u tippejstja.
Kif il-validatur jillokalizza l-iżball
L-għodda tuża json_decode() tal-PHP bil-marka JSON_THROW_ON_ERROR. PHP
jirritorna messaġġ li fih pożizzjoni f'bytes (pożizzjoni 217), li aħna nikkonvertiwh
par linja/kolonna billi jingħaddu l-waqfiet tal-linja qabel l-offset. Estratt ta' madwar 80 karattru huwa
imbagħad aqta madwar il-pożizzjoni biex tagħti kuntest. Dan huwa ġeneralment biżżejjed biex jiġi identifikat
l-iżball: kwotazzjoni żbaljata, virgola żejda, parentesi nieqsa.
Twissija: il-pożizzjoni rrappurtata mill-PHP mhix dejjem eżattament il-karattru li joffendi. Hi
spiss wara l-iżball, meta l-parser ikun ċeda. Jekk is-snippet juri "name":
"Alice", }, l-iżball attwali huwa l-virgola, mhux iċ-ċinga.
Każijiet ta' użu tipiċi
- Konfigurazzjoni korrotta:
composer.json,package.json,tsconfig.jsonli jipprevjenu bini milli jibda. Aħna paste, naraw il-linja, nikkoreġu. - Reazzjoni API maqtugħa: Prokura jaqta' t-tagħbija. L-istruttura mhix lesta, il-validatur jirrapporta dan.
- Webhook Payload: Servizz ta’ parti terza jibgħat JSON malformat. Il-validatur jippermetti biex tinnota l-problema fuq in-naħa tal-mittent mingħajr ma tgħaddas fil-kodiċi tal-applikazzjoni.
- JSON mibni b'konkatenazzjoni: prattika biex tevita iżda komuni, speċjalment f'bash jew fl-SQL. Il-validatur jiżvela kwotazzjonijiet doppji mhux maħruba.
Limitazzjonijiet tal-Għodda
Il-validatur ma jivvalidax kontra skema. Ma jgħidx li qed jitlef il-qasam
email, li l-valur mhuwiex numru sħiħ jew li l-array mistenni m'għandux it-tul korrett.
Għal dawn il-kontrolli strutturali, nużaw JSON Schema. Il-validatur lanqas ma jikkoreġi l-
JSON: ma jipprovax iżżid ċinga nieqsa jew ineħħi virgola żejda. Hija għażla
: korrezzjoni awtomatika ħafna drabi taħbi żbalji reali.
Mistoqsijiet frekwenti
X'inhi d-differenza ma' linter?
A linter imur lil hinn: jiċċekkja wkoll ir-regoli tal-istil (alfabetiku, konvenzjonijiet tal-ismijiet), jiskopri valuri duplikati, jissuġġerixxi titjib. Il-validatur jibqa' fuq il-konformità sintattiku.
JSON tiegħi huwa validu, iżda l-applikazzjoni tiegħi tirrifjutah?
Iċċekkja l-kodifikazzjoni (UTF-8 mingħajr BOM), il-limitu tad-daqs tan-naħa tas-server, it-tipi mistennija. A JSON sintattikament korrett xorta jista' ma jikkorrispondix mal-iskema tal-applikazzjoni.
Il-validatur iżomm il-JSON tiegħi?
Le L-ipproċessar huwa sinkroniku min-naħa tas-server, mingħajr persistenza. Għal data sensittiva ħafna,
xorta jippreferu validazzjoni lokali permezz ta' jq jew script PHP.
Eżempju ta' talba
curl -X POST https://cdrn.fr/api/v1/tools/json-validator/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Skema ta' input
| Kamp | Tip | Meħtieġ | Default |
|---|---|---|---|
input |
text | ✓ | – |
Endpoints
GET https://cdrn.fr/api/v1/tools- telenka l-għodod kollha disponibbliGET https://cdrn.fr/api/v1/tools/json-validator- tikseb l-iskema ta' din l-għoddaPOST https://cdrn.fr/api/v1/tools/json-validator/execute- teżegwixxi din l-għodda b'payload JSON