JSON-format

JSON-format

JSON-format

JSON Det är ett textbaserat datautbyteformat, vilket innebär att det är lätt att läsa för en person såväl som ett program. Dess namn motsvarar den engelska förkortningen av JavaScript Objekt Notation och är standardiserad som ECMA-404. Även om det är ett format mycket nära syntaxen JavaScript, eftersom det är mycket lätt att bearbeta för att koda objektdata eller att erhålla det, används det också i många andra programmeringsspråk (C, C + +, java, Python...) som ett alternativ, till exempel, till XML, som har ett liknande syfte men, eftersom det innehåller mer metainformation, kräver mer text och därför tar upp mer utrymme, förbrukar mer bandbredd och kräver mer resurser för att koda och avkoda informationen den innehåller. JSON.

Innehållsförteckning

    Data för ett objekt kodat i JSON De är omslutna av klammerparenteser, de olika egenskaperna som ingår i dem är separerade med kommatecken och egenskapsnamnen föregår värdet, från vilket de separeras med ett kolon.

    Kontur av syntaxen för ett objekt i JSON-format

    Egenskapsnamn måste omges av citattecken med dubbla citattecken (även om vissa tolkar stöder enkla citattecken), och även om vissa specialtecken är tillåtna för namn (som accenttecken), rekommenderas det inte att undvika kriterierna för vissa analysmotorer och att undvik konflikter när du använder egendom, särskilt med dot(object.property) syntax

    I exemplet ovan kan du se ett objekt som har sex egenskaper med enkla, numeriska, booleska eller textvärden; men i formatet JSON, egenskaper kan också förvärva som ett värde ett objekt (inklusive det "speciella objektet" null) eller en array förutom en textsträng (en text inom citattecken), ett tal (i olika format) eller ett booleskt värde (sant eller falskt ).

    Som med språket JavaScript (JSON är en delmängd av JavaScript) för att uttrycka en matris är dess värden omgiven av hakparenteser och separerade med kommatecken. Det enklaste fallet illustreras i exemplet nedan; Det är en endimensionell array, en vektor, sammansatt av numeriska värden.

    En JavaScript Det är inte nödvändigt att alla element i en array är av samma typ; till exempel kan textsträngar och numeriska värden blandas. En vektor, en endimensionell array, kan också vara ett av elementen i en annan array, vilket gör det möjligt att konstruera flerdimensionella arrayer med varierande längder. Följande exempel visar ett objekt med tre egenskaper: det första en tvådimensionell array med fasta längder, det andra variabla längder och det tredje bildas av en array med värden av olika typer.

    Följande exempel använder andra objekt som värden för det överordnade objektets egenskaper. Det finns ingen gräns för kapslingsnivån, så i sin tur kan objekt som är förälderns egenskapsvärden också ha andra objekt som egenskapsvärden och så vidare.

    Precis som det händer med JavaScript, används escape-koder för att inkludera vissa tecken i en textsträng. Det mest generiska sättet är att använda unicode-koder uttryckta med escape-fältet, bokstaven u och fyra hexadecimala siffror med formatet "\u263A" att hänvisa till ☺ till exempel.

    Standardtecken som finns på de flesta språk (liknande C) är följande

    • tillbakagång \b Kod ASCII 8 (0x08)
    • Tabulator \t Kod ASCII 9 (0x09) Det representeras vanligtvis som HT (horisontell tabulator)
    • Ny linje \n Kod ASCII 10 (0x0A) Det representeras vanligtvis som LF (linjematning)
    • Ny sida \f Kod ASCII 12 (0x0C) Vanligtvis representerad som FF (formflöde)
    • avkastning \r Kod ASCII 13 (0x0D) Det representeras vanligtvis som CR (carriage return)
    • Comillas \" Kod ASCII 34 (0x22)
    • split bar \/ Kod ASCII 57 (0x2F)
    • Omvänt snedstreck \\ Kod ASCII 134 (0x5C)
    • unicode-kod \uXXXX

    Härrörande från C (och relaterat till Unix och liknande, som t.ex GNU / Linux) slutet av raden representeras vanligtvis med \n och det är den som måste väljas in JSON men det är intressant att komma ihåg att vissa operativsystem föredrar andra alternativ. Windows representerar vanligtvis med \r\n radändelser och Mac OS (före OS \r

    När det gäller det numeriska formatet är referensen också JavaScript. Decimalavgränsaren är punkten, bindestrecket (ASCII 45 0x2D) används som negativt tecken och notation i exponentiell form (Vetenskaplig notation) använder E som indikator (som kan vara stora eller små bokstäver)

    Som jag sa i början, för att använda data, som kommer att ha erhållits som en text, har de olika programmeringsspråken analys- och tilldelningsfunktioner. Följande exempel visar hur de skulle användas i JavaScript. För att kunna använda den från en konsol ingår datatilldelningen JSON För att undvika eventuella fel beroende på ECMA-standarden som används av tolken JavaScript objekttilldelningen görs JSON i en enda rad. Utgåva 6 av 2016 (ECMA-262) stöder flerradssträngar, utgåva 5 (till 2011) måste lägga till escape-kod \ och i de föregående måste du lösa det för hand eller använda en enda rad.

    En varning för att inte förvirra nya användare JavaScript. Inuti koden JavaScript Det är inte nödvändigt att använda en textsträng för att skapa ett objekt, i föregående exempel används det för att simulera data som kommer till exempel från en server. För att tilldela ett objekt till en variabel, något som:

    Det objektet kan till exempel konverteras till text med funktionen stringify som följer:

    Formatet JSON Det är ganska flexibelt men, främst för att det är textbaserat för att vara läsbart för människor, har det vissa nackdelar. Den första är att den kräver mer minne och förbrukar mer bandbredd än vad som är nödvändigt. I de tidigare exemplen har ett format använts som syftar till att vara mer läsbart än ekonomiskt, så de är inte ett exempel på besparingar, även om det finns många delar av formatet (klamrar, hakparenteser, citattecken...) som skulle fortsätta att konsumera resurser jämfört med den information som representeras i råvara.

    Det andra problemet uppstår vid hantering av rent binär data (till exempel bilder) Vid hantering av små portioner kan det lösas med det som förklarades för att lösa formateringen av specialtecken, men om det handlar om att koda information av vissa dimensioner, det kommer att vara nödvändigt att bädda in det i formatet JSON med ett annat textformat. Den mest använda kodningen för att lösa denna aspekt är Base64 eftersom många språk har bibliotek för att konvertera information i en eller annan riktning. Om uppgifterna som manipuleras till övervägande del är av denna typ och/eller det inte är nödvändigt för en person att tolka informationen utan ett program, är det värt att överväga om formatet JSON är den mest lämpliga.

    Post kommentar

    Du kanske har missat