Bailíochtaigh comhréir JSON

seiceálann comhréir teaghráin JSON agus tugann sé líne agus colún na chéad earráide

Cén úsáid a bhaintear as bailíochtóir JSON?

Tá ról níos measartha, ach níos beaichte, ag bailíochtóir JSON ná ag formáidí: ní athscríobhann sé faic. Tógann sé teaghrán agus freagraíonn sé ceist dhénártha: an bhfuil an téacs seo ag teacht le JSON? RFC 8259? Má tá, filleann an uirlis rialú. Mura bhfuil, léiríonn sé go díreach an tsraith, an colún agus sliocht an JSON timpeall na faidhbe, chun cuidiú leis an bhforbróir é a shocrú láithreach.

Go praiticiúil, is é an uirlis a úsáidimid a luaithe a sheolann parsálaí teachtaireacht earráide ar ais áit éigin cripteach cosúil le Earráid Chomhréire: Comhartha gan choinne } in JSON ag suíomh 217. Seachas comhaireamh na carachtair de láimh in eagarthóir, greamaigh an teaghrán iomlán, léigh an suíomh agus féach an sliocht cionta.

Bailíochtú, formáidiú: dhá oibríocht ar leith

Is minic a mhearbhallaimid an dá rud. Glacann ár formadóir JSON JSON bailí agus athscríobhann sé é le eangú inléite. Tá an bailíochtóir sásta le fíorasc comhréire. sé ní dhéanann sé bailíochtú séimeantach: ní fios cé acu an bhfuil luach réimse ríomhphoist is cosúil le ríomhphost, ná má thagann an struchtúr le Scéimre JSON. Chun seo, úsáidimid uirlisí tiomnaithe (ajv in Nód, justinrainbow/json-schema i PHP).

Is é an seicheamh clasaiceach i ndífhabhtaithe ná: bailí ar dtús (léiríonn an uirlis earráid an chomhréire), formáid ansin (tá an pálasta atá bailí anois inléite), i gcomparáid ar deireadh le pálasta tagartha eile trínár comaradóir JSON.

Na hearráidí JSON is coitianta

  • Camóg leantóra: { "a": 1, "b": 2, }. Tolerated by JavaScript, ECMAScript agus JSON5; dhiúltú ag JSON íon. Seo é an botún #1 agus tú á chóipeáil agus á ghreamú ó eagarthóir cód.
  • Apastrophes in ionad athfhriotail dhúbailte: Tá {'a': 1} neamhbhailí. JSON ní ghlacann sé ach le comharthaí athfhriotail dúbailte, timpeall eochracha agus luachanna teaghrán.
  • Eochracha neamhluaite: {a: 1}, comhréir bailí JavaScript ach JSON neamhbhailí.
  • Carachtair rialaithe gan éalú i teaghrán: nualíne amh, a táblaíocht. Tá ag teastáil ó JSON , , .
  • Tuairimí: // nóta tráchta/* */. Glacadh leis in JSONC (config VS Code) nó JSON5, diúltaithe i JSON glan.
  • Ionchódú mícheart: BOM UTF-8 ag tús an chomhaid, ábhar Laidine-1 mícheart tiontaithe. Is minic a sheolann an bailíochtóir teachtaireacht chineálach ar ais do na cásanna seo.
  • Struchtúr neamhchríochnaithe: a {[ gan dúnadh, coitianta nuair a ghearrann tú pálasta agus tú á chóipeáil agus á ghreamú.

Conas a aimsíonn an bailíochtóir an earráid

Úsáideann an uirlis json_decode() PHP leis an mbratach JSON_THROW_ON_ERROR. PHP seolann sé teachtaireacht ar ais ina bhfuil suíomh i mbearta (suíomh 217), a dtiontóimid di péire líne/colún trí sosanna líne a chomhaireamh roimh an bhfritháireamh. Tá sliocht tuairim is 80 carachtar ann ansin gearr thart ar an suíomh chun comhthéacs a thabhairt. Is leor é seo a aithint go ginearálta an earráid: ceanglófar amú, camóg bhreise, lúibín in easnamh.

Rabhadh: ní hé an seasamh a thuairiscigh PHP i gcónaí an carachtar ciontach. She is go minic tar éis na hearráide, nuair a bhíonn an parsálaí éirithe as. Má thaispeánann an bhlúire "name": "Alice", }, is é an camóg an earráid iarbhír, ní an brace.

Cásanna úsáide tipiciúla

  • Cumraíocht truaillithe: composer.json, package.json, tsconfig.json a chuireann cosc ar thógáil. Déanaimid greamú, feicimid an líne, ceartaimid.
  • Freagra teasctha API: Ghearr seachfhreastalaí an pálasta. Níl an struchtúr críochnaithe, tuairiscíonn an bailíochtóir é seo.
  • Ualach Pála Webhook: Seolann seirbhís tríú páirtí JSON míchumtha. Ceadaíonn an bailíochtóir chun an fhadhb ar thaobh an tseoltóra a thabhairt faoi deara gan dul isteach sa chód feidhmchláir.
  • JSON tógtha trí chomhghaolú: cleachtas le seachaint ach coitianta, go háirithe i mbais nó i SQL. Nochtann an bailíochtóir comharthaí athfhriotail dhúbailte nár éirigh leo.

Teorainneacha Uirlisí

Ní dhéanann an bailíochtóir bailíochtú i gcoinne scéimre. Ní deir sé go bhfuil an pháirc in easnamh air email, nach slánuimhir é an luach nó nach bhfuil an fad ceart ag an eagar ionchais. Le haghaidh na seiceálacha struchtúracha seo, úsáidimid Scéimre JSON. Ní cheartaíonn an bailíochtóir an JSON: ní dhéanann sé iarracht brace ar iarraidh a chur leis nó camóg breise a bhaint. Is rogha é : cuireann ceartú uathoibríoch i bhfolach ró-mhinic earráidí.

Ceisteanna coitianta

Cad é an difríocht le línéar?

Téann lintéar níos faide: seiceálann sé freisin rialacha stíl (aibítre, coinbhinsiúin ainmniúcháin), aimsíonn sé luachanna dúblacha, molann feabhsuithe. Tá an bailíochtóir fós ag comhlíonadh comhréir.

Tá mo JSON bailí, ach diúltaíonn m'iarratas dó?

Seiceáil an t-ionchódú (UTF-8 gan BOM), teorainn mhéid an fhreastalaí, na cineálacha a bhfuiltear ag súil leo. A JSON b'fhéidir nach bhfuil an ceart sytactactically ag freagairt do scéimre an iarratais.

An gcoimeádann an bailíochtóir mo JSON?

Níl. Tá próiseáil sioncronach ar thaobh an fhreastalaí, gan marthanacht. Le haghaidh sonraí an-íogair, is fearr fós bailíochtú áitiúil trí jq nó script PHP.

Sampla iarratais

curl -X POST https://cdrn.fr/api/v1/tools/json-validator/execute \
  -H "Content-Type: application/json" \
  -d '{"input":"..."}'

Scéimre ionchuir

Réimse Cineál Riachtanach Réamhshocrú
input text

Críochphointí

  • GET https://cdrn.fr/api/v1/tools - liostaíonn na huirlisí go léir atá ar fáil
  • GET https://cdrn.fr/api/v1/tools/json-validator - faigh scéimre na huirlise seo
  • POST https://cdrn.fr/api/v1/tools/json-validator/execute - rith an uirlis seo le pálasta JSON