JSON formátum

JSON formátum

JSON formátum

JSON Szöveg alapú adatcsere formátum, vagyis ember és program számára is könnyen olvasható. Neve az angol mozaikszónak felel meg JavaScript objektum jelölése és szabványosított mint ECMA-404. Bár ez a formátum szintaxisában nagyon közel áll ehhez JavaScript, mivel nagyon könnyen feldolgozható az objektumadatok kódolása vagy beszerzése, sok más programozási nyelvben is használják (C, C + +, Jáva, Piton...) alternatívájaként például az XML-nek, amelynek hasonló célja van, de mivel több metainformációt tartalmaz, több szöveget igényel, ezért több helyet foglal el, több sávszélességet fogyaszt, és több erőforrást igényel a kódolás és dekódolás a benne foglalt információkat. JSON.

Tartalomjegyzék

    A kódolt objektum adatai JSON Kapcsos zárójelek közé vannak zárva, a bennük szereplő különböző tulajdonságok vesszővel vannak elválasztva és a tulajdonságnevek az érték előtt állnak, amelytől kettősponttal választjuk el őket.

    Egy objektum szintaxisának vázlata JSON formátumban

    A tulajdonságneveket idézőjelek közé kell tenni kettős idézőjelekkel (bár egyes elemzők támogatják az egyszeres idézőjeleket), és bár bizonyos speciális karakterek megengedettek a nevekben (például ékezetes jelek), nem ajánlott elkerülni egyes elemzőmotorok kritériumait és kerülje az ütközéseket a property használatakor, különösen a dot(object.property) szintaxis esetén

    A fenti példában egy olyan objektumot láthat, amelynek hat tulajdonsága van egyszerű, numerikus, logikai vagy szöveges értékekkel; hanem a formátumban JSON, a tulajdonságok értékként is szerezhetnek egy objektumot (beleértve a "speciális objektum" nullát) vagy egy tömböt a szöveges karakterláncon (szöveg idézőjelben), egy számon (különböző formátumban) vagy egy logikai értékként (igaz vagy hamis). ).

    Mint a nyelvvel JavaScript (JSON részhalmaza JavaScript) egy mátrix kifejezéséhez értékeit szögletes zárójelek közé kell tenni és vesszővel elválasztani. A legegyszerűbb esetet az alábbi példa szemlélteti; Ez egy egydimenziós tömb, egy vektor, számértékekből áll.

    En JavaScript Nem szükséges, hogy egy tömb minden elemének azonos típusú legyen, például a szöveges karakterláncok és a számértékek keverhetők. Egy vektor, egy egydimenziós tömb egy másik tömb egyik eleme is lehet, így változó hosszúságú többdimenziós tömbök hozhatók létre. A következő példa egy három tulajdonságú objektumot mutat be: az első egy kétdimenziós tömb fix hosszúságú, a második változó hosszúságú, a harmadik pedig egy különböző típusú értékeket tartalmazó tömbből áll.

    A következő példa más objektumokat használ a szülőobjektum tulajdonságainak értékeként. A beágyazás szintje nincs korlátozva, így a szülő tulajdonságértékeihez tartozó objektumok más objektumokat is tartalmazhatnak tulajdonságértékként stb.

    Ugyanúgy, ahogy az történik JavaScript, az escape kódok bizonyos karakterek szöveges karakterláncon belüli elhelyezésére szolgálnak. A legáltalánosabb módja az, hogy unicode kódokat használunk, amelyek a escape sávval vannak kifejezve, az u betű és négy hexadecimális számjegy a formátummal. "\u263A" például a ☺-re hivatkozni.

    A legtöbb nyelven megtalálható szabványos karakterek (hasonlóan a C-hez) a következők

    • visszafejlődés \b Kód ASCII 8 (0x08)
    • Tabulátor \t Kód ASCII 9 (0x09) Általában HT-ként (vízszintes tabulátorként) ábrázolják.
    • Új sor \n Kód ASCII 10 (0x0A) Általában LF-ként (line feed) jelölik
    • Új oldal \f Kód ASCII 12 (0x0C) Általában FF (form feed)
    • visszatérés \r Kód ASCII 13 (0x0D) Általában CR-ként (carriage return) jelölik.
    • Idézőjel \" Kód ASCII 34 (0x22)
    • osztott rúd \/ Kód ASCII 57 (0x2F)
    • Hátsó perjel \\ Kód ASCII 134 (0x5C)
    • unicode kód \uXXXX

    Származó C (és ehhez kapcsolódik Unix és hasonlók, mint pl GNU / Linux) a sor végét általában jellel jelöljük \n és ezt kell kiválasztani JSON de érdekes megjegyezni, hogy egyes operációs rendszerek más alternatívákat preferálnak. A Windows rendszerint a -val jelöli \r\n sorvégződések és Mac OS (az operációs rendszer előtt \r

    A számformátumot illetően a hivatkozás is JavaScript. A tizedes elválasztó a pont, a kötőjel (ASCII 45 0x2D) negatív előjelként használatos és a jelölés exponenciális formában (Tudományos jelöléssel) használ E indikátorként (ami lehet nagy vagy kisbetű)

    Ahogy az elején mondtam, a szövegként kapott adatok felhasználásához a különböző programozási nyelvek elemzési és hozzárendelési funkciókkal is rendelkeznek. A következő példa bemutatja, hogyan használnák őket JavaScript. Ahhoz, hogy konzolról lehessen használni, az adathozzárendelést tartalmazza JSON Az esetleges hibák elkerülése érdekében a tolmács által használt ECMA szabványtól függően JavaScript megtörténik az objektum hozzárendelés JSON egyetlen sorban. 6. évi 2016. kiadás (ECMA-262) támogatja a többsoros karakterláncokat, az 5-ös kiadáshoz (2011-ig) escape kódot kell hozzáadni \ az előzőekben pedig kézzel kell megoldani vagy egyetlen sort kell használni.

    Figyelmeztetés, hogy ne keverje össze az új felhasználókat JavaScript. A kód belsejében JavaScript Objektum létrehozásához nem szükséges szöveges karakterláncot használni, az előző példában például a szerverről érkező adatok szimulálására szolgál. Objektum hozzárendelése egy változóhoz, például:

    Ez az objektum például szöveggé konvertálható a függvénnyel stringify alábbiak szerint:

    A formátum JSON Meglehetősen rugalmas, de főként azért, mert szövegalapú, hogy ember számára is olvasható legyen, vannak hátrányai. Az első az, hogy több memóriát igényel, és több sávszélességet fogyaszt, mint amennyi szükséges. Az előző példákban olyan formátumot használtak, amely inkább olvasható, mint gazdaságos, így nem példa a megtakarításra, még így is sok olyan eleme van a formátumnak (zárójelek, zárójelek, idézőjelek...) ami tovább folytatódna. erőforrásokat fogyasztani a reprezentált információhoz képest.-ban nyers.

    A második probléma tisztán bináris adatok (például képek) kezelésekor merül fel, kis részek kezelésekor megoldható a speciális karakterek formázásánál leírtakkal, de ha bizonyos méretű információk kódolásáról van szó, szükséges lesz beágyazni a Formátumba JSON más szövegformátum használatával. Ennek a szempontnak a megoldására a leggyakrabban használt kódolás Bázis64 mivel sok nyelvnek van könyvtára az információk egyik vagy másik irányba történő konvertálására. Ha a manipulált adatok túlnyomórészt ilyen típusúak és/vagy nem szükséges, hogy egy személy program nélkül értelmezze az információt, érdemes átgondolni, hogy a formátum JSON a legalkalmasabb.

    Hozzászólás Comment

    Lehet, hogy lemaradtál