Net-Base Iris

13.08.2026

JSON i Delphi: Parser srutha tapa le System.JSON agus fadhbanna UTF-8 le carachtair speisialta

Nuair a thagann payloadanna JSON i Delphi go díreach ó shruth, éiríonn as „páirseáil gasta“ go tapa fadhb táirgthe: éileamh ard ar chuimhne, earráidí páirseála ó am go ham agus uimláidí briste. Taispeánann an trácht cleachtais seo conas is féidir leat parser shrutha tapa a chur ar bun ag baint úsáide as System.JSON...

13.08.2026

Ó théama an iris go cleachtas tionscadail

Leathanaigh seirbhíse agus teicniúla oiriúnacha don alt

„JSON in Delphi“ cosúil le fadhb réitithe: tá System.JSON ar bord, soláthraíonn glaonna REST téacs, agus tá sé críochnaithe. Sa phraitic, áfach, tagann na hearráidí fíor nuair nach mbíonn JSON mar String chompordach ach mar Stream: sreabhán freagra HTTP, sreabhán comhaid, pipe ainmniúil, Message-Queue nó BLOB mór ón mbunachar sonraí. Ansin tarraingítear le chéile trí ghné a bhíonn á mheas níos lú go minic sa ghnáthobair: iompar cuimhne, códú carachtair (go háirithe UTF-8) agus cásanna imeallacha a bhaineann le carachtair speisialta.

Cuireann an trácht seo cur chuige glan, tapa i láthair chun JSON a pharsáil ó TStream gan cóipeanna neamhríthábhachtacha a ghiniúint — agus go háirithe gan na gaisteacha tipiciúla UTF-8, ina mbíonn fuaimeanna nó umlaute “briste” nó ina n-eascríonn parsálaithe ó am go chéile le teachtaireachtaí criptithe. Tá an fócas ar thionchair ar oibriú agus ar chobhsaíocht na n-idirghabhálacha: debugging inathdhéanta, teorainneacha soiléire an chur chuige agus critéir chun a chinneadh cathain is fiú an iarracht i ndáiríre.

Cén fáth a n-imríonn sreabháin go difriúil le linn JSON-Parsing i Delphi

Chomh fada agus atá doiciméad JSON beag, tá an bealach „sreabhán a léamh isteach i String, ansin parse“ compordach. Ach má shíneann an payload suas (gnáthrud: liostaí móra, tuarascálacha, sonraí sync, easpórtálacha log) éiríonn sé costasach:

  • Duaplálacha cuimhne: Léann tú bytes isteach i bufer, tiontaíonn tú iad go String Unicode (Delphi-String = UTF-16), agus cruthaíonn an parser struchtúir bhreise go hinmheánach. D’fhéadfadh sé seo roinnt cóipeanna a chruthú go sealadach.
  • Brú GC/Heap: Méadaíonn go leor Strings sealadacha agus luachanna JSON fragmentáil agus os cionn an dáileacháin ó thaobh acmhainní de, go háirithe i bpróisis fadtéarmacha (seirbhísí, oibrithe, postanna iompórtála).
  • Éiríonn íomhá na hearráide míchinntitheach: Má dhéanfar tuairimí códaithe míchearta cheana féin agus tú ag léamh isteach, feicfidh an JSON-Parser ach “carachtair aisteacha” nó giotáin rialaithe neamhthónta.

Tá sé tábhachtach idirdhealú soiléir a chothú: tá JSON go foirmiúil Unicode, agus ar an seoltóir tá sé beagnach i gcónaí UTF-8. Oibríonn Delphi inmheánach le UTF-16, áfach. Is í an chéim ón bheit (bytes) go dtí an charachtar (String) an pointe ina dtosaíonn fadhbanna le carachtair speisialta — ní sa JSON féin.

System.JSON: Cad atá maith ann — agus cá háit ar chóir duit a bheith cúramach

System.JSON is é an caighdeán do JSON bunaithe ar DOM i Delphi: faigheann tú samhail réad (TJSONObject, TJSONArray), is féidir luachanna a iarraidh, dul trína chéile, agus sraitheáil. Tá sé seasmhach don chuid is mó de na comhtháthuithe gnó, ach tá dhá iarmhairt leis:

  • Ní parser sreabhach i ndáiríre é: Tógann an samhail réad go hiomlán. D’fhéadfá an léitheoireacht isteach i String breise a sheachaint i gcásanna áirithe, ach fanann an DOM ard-éilimh ó thaobh cuimhne de.
  • Is minic gur téacs a bhíonn i gceist mar ionchur do parser: Ag brath ar an leagan Delphi agus ar an API a úsáideann tú, is minic a thagann tú ar ais chuig an String, lena n-áirítear tiontú códaithe.

Má tá do sprioc “parser sreabhach tapa”, i ndáiríre is dócha go bhfuil tú ag féachaint ar dhóigh amháin de dhá ruda: (1) gan cóipeanna neamhghácha agus (2) fail-fast chomh luath agus is féidir i gcás payloads truaillithe. Is féidir an dá rud a bhaint amach le System.JSON, má smachtaíonn tú an chéim ó bytes go téacs.

Gaisteacha UTF-8 le carachtair speisialta: na cúiseanna tipiciúla

Abstrakte Grafik zeigt UTF-8-Mehrbytezeichen über Chunk-Grenzen und korrekte Pufferung im Decoder vor dem JSON-Parsing
Tá chunking sábháilte — má choimeádtar sraitheanna il-bhaite thar theorainneacha ag an decóidéir UTF-8.

Má tá Umlaute (ä/ö/ü/ß) nó carachtair speisialta eile ag breathnú mícheart sa thoradh (ä, – srl.), is beagnach i gcónaí gur Encoding-Mismatch é. Sa chomhthéacs Delphi tá na cúiseanna seo go háirithe coitianta:

1) ANSI-Fallback durch „bequeme“ Helper

Glacann roinnt slíanna léithe go ciúin le System-ANSI-Encoding (codepage de chóras Windows) má níl ionchódú sainmhínithe á chur isteach. Ní thagann sé seo chun solais ach nuair nach bhfuil an payload teoranta do ASCII amháin. I sonraí tástála bíonn sé go minic ‘ceart’ de thaisme; i dtáirgeadh pléascann sé le hainmneacha fíor, áiteanna agus réimsí téacs saor.

2) BOM-Verwirrung (Byte Order Mark)

Is féidir le UTF-8 tosú le BOM (baita EF BB BF). Sa chomhthéacs gréasáin tá BOM níos lú coitianta; i gcomhadanna tagann sé i láthair. Aithníonn cuid léitheoirí an BOM agus oireann siad an ionchódú, ní dhéanann cuid eile é nó déanann siad é ach i módanna ar leith. Má théann BOM isteach mar charachtar gnáth sa shreang, feiceann tú go minic ‘Zero Width No-Break Space’ i dtús an téacs nó teipeann an JSON-Parser go díreach ar an gcéad token.

3) Doppel-Konvertierung (UTF-8 wird „nochmal“ interpretiert)

Is é an patrún earráide tipiciúil «ä statt ä» nuair a dhéantar na baitaí UTF-8 a dhí-chódú i gceart chuig Unicode ar dtús, ach ina dhiaidh sin a léirmhínítear iad arís go mícheart mar baitaí ANSI/UTF-8 (nó vice versa). Sa chomhthéacs Delphi tarlaíonn sé seo go minic nuair nach bhfuil an t-aistriú idir TBytes, RawByteString agus string soiléir.

4) Trunkierung mitten in einem Multibyte-Zeichen

Cuireann UTF-8 carachtair speisialta i gcodáil atá 2–4 mbait ar fhad. Má léann tú i gchunkanna (m.sh. 8 KB) agus má tá teorainn an chunchanna i lár charachtair, caithfidh an decóidéir an t-ábhar a bhufáil i gceart. Cruthaíonn cur chuige naíve a athraíonn gach chunk ina string ar leith agus a ghreamaíonn iad le chéile sraitheanna neamhbhailí. Is féidir leis seo breathnú mar earráid ‘sporadach’, ag brath ar theorainneacha paicéad, iompar proxy nó HTTP-Chunking.

5) Falsche Annahmen aus HTTP-Headern

Sa chomhthéacs REST is minic gurb é an fhoinse Content-Type: application/json; charset=utf-8. Uaireanta áfach ní sheolann freastalaithe charset ar bith, uaireanta seolann siad sonraí míchearta. Má úsáideann tú an ceanntásc gan smaoineamh, d’fhéadfadh sé sin athrú de réir leagan an bhackend. Maidir le hoibriú agus tacaíocht, cabhraíonn sé an sruth biti fíor a sheiceáil agus logáil sa chás earráide.

Ein sauberer Ansatz: Stream → UTF-8-Decoder → JSON-Parser

Tá an píblíne chobhsaí comhdhéanta de thrí chéim shoiléir:

  1. Baita a léamh ón sruth (go rialaithe, dá mbeadh gá le teorainn/timeout sa chliaint HTTP).
  2. Dí-chódú chuig Unicode le UTF-8 shonrach (BOM a tholaíonn go roghnach).
  3. Parsanáil le System.JSON isteach i múnla réad nó le haghaidh eastóscadh dírithe.

Is í céim 2 an príomhghné: níor mhaith leat go gcinnfidh áit ar bith an «Default Encoding». Sa chomhthéacs Delphi ciallaíonn sé sin: TEncoding.UTF8 explizit setzen agus gan brath ar thiontuithe implícite.

Was „schnell“ hier konkret bedeutet

Le System.JSON ní bheidh tú in ann an DOM a „optamú amach“. Ach is féidir leat a sheachaint:

  • cóip bhreise den iomlán Payload mar shreang idirghabhála, má tá tú istigh ag úsáid ach cúpla luach (sa chás sin b’fhearr parser eile; faoi sin níos déanaí),
  • athchódú iolrach,
  • agus is féidir leat Payloads an-mhóra a léamh go smachtaite (le teorannmhéid agus teachtaireacht earráide shoiléir), in ionad deireadh a chur le Out-of-Memory nó Access Violations.

An cás teoranta sonrach: carachtair speisialta briste, ach amháin uaireanta

Cás teoranta ón bpráxis atá an-chasta: is ann don Payload a bheith bailí mar UTF-8-JSON de ghnáth, ach tá tú ag léamh í i gcodaí (Chunks) agus ag tiontú gach Chunk go String. Nuair a bhíonn ach ASCII ann ní thugann tú faoi deara aon fhadhb. Nuair a bhíonn diaidh ar uair carachtar leathan ar chríoch teorann Chunk, cruthaítear sraitheanna neamhbhailí UTF-8. Torthaí: carachtair briste nó earráidí parse ag pointe nach mbaineann leis an ábhar i ndáiríre.

Conas a aithníonn tú é:

  • Tarlaíonn earráidí parse „ar thuar“ i bhfreagraí móra, ní i gceantair bheaga.
  • Bíonn an t-iarratas céanna rathúil uaireanta agus ag teipeadh uaireanta eile (ag brath ar chunking/íompórtáil).
  • Léiríonn hexdump na mbaití UTF-8 bailí, ach tá Replacement Characters (�) nó mojibake le feiceáil sa String atá tú ag logáil.

Ní hé an réiteach ná níos mó a readln nó „bufairí níos mó“ a úsáid, ach decóidéir a úsáid a bhufálann seichimh il-bhait thar theorainneacha Chunk i gceart. Sin go díreach an pointe ina bhféadfadh TStreamReader i gcomhcheangal le h-UTF-8-Encoding a bheith cabhrach — má thosaíonn tú é i gceart.

Treoir chleachtais: UTF-8 in Delphi a sheiceáil go inathnuaite

Suíomh debugging le printí dump-bait agus ábhar oibre chun baití UTF-8 agus BOM i JSON-Payloads a sheiceáil
Chun debugging glan, is é sruth na mbait an chéad rud le scrúdú: tá BOM, truncation agus seichimh neamhbhailí le feiceáil go tapa.

Sula dtosóidh tú ag cur lámh i bhfearas an parser, teastaíonn socrú debugging uait a dhéanann an sruth baití fíor inrochtana duit. Tá sé sin an-luachmhar don tacaíocht agus don oibriú, mar beidh tú in ann go soiléir a rá níos déanaí an bhfuil an taobh eile ag soláthar sonraí míchearta nó an bhfuil do phíblíne ag dí-chódú mícheart.

1) Na chéad bhaití a sheiceáil (BOM, tús JSON)

Má tá an JSON ag teacht le BOM, feicfidh tú EF BB BF i dtús an tsruth. Ba chóir gurb é „{“ nó „[“ a thagann go hiondúil láithreach ina dhiaidh sin. Má tá „ï»¿“ sa String cheana féin, níor láimhseáladh an BOM mar BOM — dí-chódíodh é mar théacs.

2) Baití amh a logáil i hex – ach go teoranta

Ná logáil Payloads iomlána i dtáirgeadh (cosaint sonraí, costas, toirt na loga). Tá sé cothrom le dea-chleachtas:

  • Prefix (m.sh. na chéad 256 nó 1024 baití),
  • Suffix (na 256 baití deireanacha),
  • agus hash (SHA-256) le haghaidh cóbhailt má tá tú ag comparáid a dhéanamh idir Payloads.

Leis sin is féidir leat fadhbanna le carachtair speisialta a aithint go minic i gceann nóiméad: An bhfuil an sruth baití do „ä“ ceart (C3 A4)? An bhfuil truncation ann? An léirítear 0x00 neamh-thuartha (nullbyte), mar shampla mar gheall ar mhealladh go UTF-16?

3) Content-Type und Charset mitloggen

Ag HTTP/REST: Logáil an Content-Type agus an charset fógraithe. Má tá na baiti soiléir UTF-8, ach má dhéanann an charset tagairt do rud eile, níor chóir duit sa chliaint é a leanúint go dall. Do JSON is é UTF-8 an caighdeán de facto. I gcás amhras: buaileann anailís ar na baiti an ceann ar na header.

Parsanóir srutha tapa le System.JSON: Dearadh gan cóipeanna neamhriachtanacha

Schemahafte Darstellung einer Pipeline aus Stream, UTF-8-Decoding, Größenlimit und JSON-DOM-Parsing in Delphi
Píplíne shoiléir le teorainn agus UTF-8 shonrach a scarthaíonn iompair, díchódú agus parsing go soiléir.

Pattern praiticiúil is ea: léigh tú as an sruth isteach i bufair baiti, tóg as sin String go díreach uair amháin le UTF-8, agus tabhair an String sin don JSON-parser. Ní hé seo „Streaming“ i dtéarmaí SAX, ach is píplíne rialaithe, éifeachtach í gan athruithe iontasacha ar an encoding.

Tábhachtach don ailtireacht: tóg an fheidhm sa chaoi is go ndéanann sí cinneadh go lárnach in aon áit amháin:

  • Cén riail códaithe atá i bhfeidhm (de ghnáth UTF-8, BOM roghnach)?
  • Cé chomh mór is féidir leis an payload a bheith go háirithe (cosaint DoS, teorainn oibríochta)?
  • Conas atá na teachtaireachtaí earráide (le comhthéacs, ach gan sceitheadh sonraí)?

Straitéis léithe: Puffáil teoranta in ionad „StreamToString“ gan teorainn

Má ghlacann tú JSON ó fhoinsí seachtracha (comhpháirtithe, cliaint soghluaiste, tríú páirtithe), tá teorainn méid riachtanach. Gan teorainn is leor iarratas náire amháin chun seirbhís a chur faoi bhrú cuimhne. Practiciúil: agus tú ag léamh, comhaireamh na baiti a dhéanamh agus stop ag teorainn — le eisceacht shoiléir a bheidh inmharthana sa monatóireacht.

Cén fáth a mbíonn mé ag súil le UTF-8 go minic „gan BOM“, ach BOM a ghlacadh

Ní bhíonn BOM coitianta i payloads REST. I gcomhaid (onnmhairí, eagarthóireacht láimhe) bíonn sé níos minice. Do shreafaí ionchuir chobhsaí is féidir BOM a ghlacadh, ach é a chur i log mar tháscaire go bhféadfadh sé a bheith ón „domhan comhaid“ seachas ón „domhan API“.

Na marfacha ciúine: réamhshocruithe TStreamReader agus léitheoirí téacs i measctha oibriúcháin

TStreamReader áisiúil é, ach caithfidh tú dhá rud a bheith faoi smacht go soiléir:

  • Socrú an encoding go sainráite: Ná bí ag súil go n-aitheonn sé é.
  • Tuig an buffáil: Tá an reader ag buffáil go inmheánach. Má léann tú an sruth céanna áit éigin eile níos déanaí, tá an suíomh tábhachtach. Fuaimeann sé trívialach, ach i sruthanna iontrála níos mó is féidir leis a bheith ina fhoinse earráide go tapa.

Go háirithe míchompordach is ea measctha oibriúcháin: ar dtús cuid a léamh mar baiti (m.sh. do logging nó chun magic-bytes a sheiceáil), ansin leanúint leis le TStreamReader. Mura ndéanann tú fillteán ar an suíomh nó mura ndéantar an reader a thosú ag an suíomh ceart, léifear ó bhait 257 in áit 0. Thuairiscíonn an JSON-parser ansin „Invalid character at position …“, cé go bhfuil an payload i ndáiríre ceart.

Nuair a bhíonn carachtair speisialta „briste“ in ainneoin UTF-8: Escaping vs. fíor-Unicode

Is féidir le JSON carachtair speisialta a bheith ann ar dhá bhealach:

  • Mar charachtair UTF-8 fíor (m.sh. „München“ mar baiti C3 BC …).
  • Mar shraith éalaithe (m.sh. ‚Mu00fcnchen‘).

Tá an dá bhealach bailí. Sa chleachtas tá sé tábhachtach: seachnaíonn seichimh éalaithe go leor fadhbanna iompair, ach níl siad ina réiteach iomlán ar earráidí códúcháin. Má léann do chóras bytes mícheart áit éigin, is riosca oibríochta é sin, ní botún cosmaideach amháin. Ina theannta sin, d’fhéadfadh seichimh éalaithe mearbhall a chruthú i logging/monitoring má tá foirne ag súil le téacs inléite.

Soláthraíonn System.JSON duit i gcás an dá chás ag an deireadh sreanga Delphi gnáth (UTF-16), más rud é go raibh an tslí suas go dtí sin ceart.

Measúnú réalaíoch ar fheidhmíocht: costais an DOM, eagar móra agus sainroghnóireacht

Is minic nach é ‚an parser a dhéanamh níos tapúla‘ an t-ardán is mó ar fheidhmíocht, ach an méid a pharsáiltear a laghdú. Le System.JSON tá sé sin deacair, toisc go bhfaigheann tú an DOM. Trí chás tipiciúil:

  • Eagar móra (10.000+ eilimintí): Tógann tógáil an DOM am agus RAM. Má theastaíonn uait ach 2 réimse in aghaidh na heilimintí, bíonn parser atá in ann sruthú (SAX/Tokenizer) níos oiriúnaí go minic. Ní dhearnadh System.JSON don aidhm sin.
  • Aonad-earraí le go leor réimsí: Má theastaíonn uait ach cúpla réimse, is féidir an DOM a úsáid fós, ach seachain trasnú iolrach. Faigh na luachanna uair amháin agus mapáil iad isteach i do struchtúir.
  • Payloads mhóra i ndiaidh a chéile: I bpostanna iompórtála nó i oibrithe Sync is fiú an parsáil a chothaithigh i gcéim shoiléir agus, tar éis gach doiciméid, na tagairtí go léir a scaoileadh saor ionas gur féidir leis an mbainisteoir cuimhne an obair ghlantacháin a dhéanamh. Tá sé seo simplí, ach i seirbhísí déanann daoine é go minic ‚mar rud ar an taobh‘.

Mar sin, is minic gur comhréiteach maith é parser srutha tapa le System.JSON: léamh go héifeachtach agus go cruinn, an DOM a úsáid go eolach, agus teorainneacha a shainiú. Má theastaíonn uait semantacht srutha fíor (m.sh. eilimintí eagar a phróiseáil ceann ar cheann gan gach rud a choinneáil i gcuimhne), níl System.JSON mar bhunús oiriúnach.

Neartacht san oibriú: patrúin earráide agus conas iad a dhéanamh inrochtana láithreach

Bíonn earráidí parse JSON sna logs go minic neamhúsáideach, mar go luaitear ach suíomh amháin. Don oibriú agus don tacaíocht teastaíonn comhthéacs uait:

  • Suíomh bait vs. suíomh carachtair: Le UTF-8 níl siad comhionann. Má thuairisceann an parser suíomh carachtair, d’fhéadfadh an suíomh bait a bheith difriúil. Do byte-dumps is é an suíomh bait an t-úsáidí atá cinntitheach.
  • Snipéad timpeall na háite earráide: Taifead logs i gcás earráide fuinneog bheag timpeall na suímh (m.sh. 40 carachtar roimh/ina dhiaidh), ach amháin má tá aon sonraí íogaire i gceist. Mar mhalairt, taifead an réigiún i bhformáid hexadeacimal amháin.
  • Correlaíocht: Request-ID, Endpoint, Partner-ID, Payload-Hash. Gan na tagairtí seo ní bhfaighidh tú ‚an earráid sin‘ arís go héasca.

Is é an sprioc go mbeifeá in ann laistigh de chúpla nóiméad tar éis eachtra i dtáirgeacht a rá cén ceann den thrí atá i gceist: ‚encoding míléirithe‘, ‚payload gearrtha‘, ‚freastalaí ag seachadadh JSON neamhbhailí‘ nó ‚tá fadhb mapála againn‘.

Eisceachtaí UTF-8 a sheachaint go beacht: liosta seiceála

  • Sainmhínigh an códú i gcónaí: Ná bí ag brath ar na réamhshocruithe agus tú ag léamh ó shruth nó ag scríobh i logs/comhaid.
  • Ná déan comhshó slisne-go-téacs: Má léann tú i slisnéad (chunked), bailigh na bytes nó bain úsáid as decodóir a phuffeálann sraitheanna il-bhait.
  • Foighneach le BOM, ach infheicthe: Glac le BOM, ach bí in ann é a aithint le haghaidh dífhabhtaithe.
  • Socraigh teorainneacha: Uasmhéid mhéid payload, uasmhéid doimhneacht réad/eagra (má tá sé laistigh de do smacht), agus timeouts sa chliant HTTP.
  • Freagrachtaí scartha: „Transport lesen“ agus „JSON parsen“ a choinneáil scartha i sraitheanna éagsúla. Mar sin dífhabhtaítear níos tapúla agus is féidir parser a mhalartú níos déanaí.
  • Cathain is fiú an iarracht do Stream-Parser i ndáiríre?

    Ní gá duit gach pointe JSON a optamú. Bíonn an cur chuige seo de ghnáth tairbheach má tá a laghad de na rudaí seo fíor:

    • Payloads móra (cúpla MB) tagann siad go rialta nó d’fhéadfadh siad tarlú.
    • Próisis fadtéarmacha (Service, Worker) a phróiseálann go leor payloads agus má fheiceann tú spíceanna cuimhne nó fragmentáil.
    • Inrochlú le córais héiteoracha: roinnt comhpháirtithe, ardáin éagsúla, encodings uaireanta lochtach.
    • Stair eachtraí: bhí “umlaute briste” ann cheana féin, earráidí parsa ó am go chéile, nó teipeanna allmhairithe nach bhféadfaí a athchruthú go héasca.

    Mura bhfuil do payloads mó agus má thagann siad ó fhoinse rialaithe, bíonn bealach simplí go minic sách. Ach fiú ansin: an UTF-8 a shonrú go soiléir costas íseal agus seachnaíonn sé iontasanna sa todhchaí.

    Teorainn: Nuair a theastaíonn uait sruthú i ndáiríre

    Tá System.JSON dírithe ar DOM. Má tá tú ag iarraidh sonraí a phróiseáil i ndáiríre ar an tsruth — m.sh. array mór eilimint de réir eilimint gan é a choinneáil go hiomlán — beidh cur chuige parser eile uait (Tokenizer/SAX). Ní breithiúnas ar luach é sin, ach cinneadh ailtireachta:

    • DOM (System.JSON): compordach, oiriúnach do ghnáth-objachtaí gnó, ach tomhaltach i gcaitheamh cuimhne.
    • Streaming/SAX: úsáid cuimhne íseal, oiriúnach do shonraí an-mhóra, ach níos mó iarrachta cur i bhfeidhm agus láimhseáil earráide níos cúramach.

    Is minic a bhíonn comhréiteach réasúnach ann: láimhseáil srutha, encoding agus teorainneacha a thógáil go soiléir, agus ansin cinneadh a dhéanamh an oireann DOM fós. I go leor tionscadal, cuireann sé sin seasmhacht chinnte ar an oibríocht ina n-aonar.

    Conclúid: JSON in Delphi éiríonn iontaofa má chóireáiltear Encoding agus sruthanna mar shraith dhifreáilte

    Is beag dlúthbhaint a bhíonn ag formhór na bhfadhbanna timpeall “JSON in Delphi” leis an JSON-Parser féin; tugann siad foinse ó thaobh na hearnála nach bhfuil an-chuma air: athraítear bytes ó shruth go téacs. Má chóireálann tú UTF-8 go soiléir, má aithníonn tú cásanna BOM, má nach ndéanann tú neamhaird ar theorainneacha chunk agus má shonraíonn tú teorainneacha méide soiléire, imeoidh na hearráidí carachtair speisialta coitianta — agus beidh earráidí parsa ó am go chéile in-athchruthaithe.

    Fanann System.JSON mar chaighdeán phraiticiúil: ní hé an parser sruthaithe is tapúla é, ach tá sé seasmhach má rialaíonn tú an ionchur agus má ghlacann tú go feasach le costais DOM. Más mian leat, is féidir linn do shlí ionchuir-/REST a rith tríd le chéile agus an áit a aithint ina dtiteann Encoding nó Chunking: déan teagmháil.

    Tá JSON Stream Parser tábhachtach don ábhar seo freisin. Cuireann an t-alt na gnéithe seo i láthair go soiléir agus taispeánann sé cad atá tábhachtach sa chleachtas laethúil.

    Pléigh tionscnamh nó togra nuachóirithe le Net-Base.

    Céim eile

    Nuair a éiríonn an téama ina thionscadal iarbhír, ba cheart ailtireacht, maoin reatha agus oibríocht a mheas le chéile go luath.

    Ní hamháin go dtacaímid le ceisteanna aonair, ach freisin nuair is gá ó shlisíní cód foinse, ó ábhair legacy nó ó smaointe portail tionscadal corparáideach iontaofa a fhorbairt.

    • Measúnítear an staid reatha, an stát sprioc agus na rioscaí teicniúla le chéile.
    • REST, rochtain ar shonraí, portaill agus Rollout, ní chuirfear iad siar mar iarmhairtí déanacha.
    • Feicfidh sibh go luath cén bealach atá eacnamaíoch agus ó thaobh oibríochta inbhuanaithe.

    Roinn an post

    Roinn an t-alt seo go díreach

    Tá LinkedIn, X, XING, Facebook, WhatsApp agus ríomhphost ar fáil láithreach. Maidir le Instagram, táimid ag ullmhú an nasca agus téacs gairid láithreach.

    Ríomhphost

    Osclaítear Instagram i gcluaisín nua. Cóipeáiltear an nasc agus an téacs gairid roimh ré isteach sa ghearrthaisce.