JSON-format

JSON-format

JSON-format

JSON Det er et tekstbasert datautvekslingsformat, noe som betyr at det er enkelt å lese for en person så vel som et program. Navnet tilsvarer det engelske akronymet JavaScript Objekt Notation og er standardisert som ECMA-404. Selv om det er et format som er veldig nær syntaks Javascript, fordi det er veldig enkelt å behandle for å kode objektdata eller å skaffe det, brukes det også i mange andre programmeringsspråk (C, C + +, Java, Python...) som et alternativ, for eksempel til XML, som har et lignende mål, men fordi det inkluderer mer metainformasjon, krever mer tekst og tar derfor mer plass, bruker mer båndbredde og krever mer ressurser for å kode og dekode informasjonen den inneholder. JSON.

Innholdsfortegnelse

    Dataene til et objekt kodet inn JSON De er omsluttet av klammeparenteser, de forskjellige egenskapene som er inkludert i dem er atskilt med komma og egenskapsnavnene kommer foran verdien, hvorfra de er atskilt med et kolon.

    Oversikt over syntaksen til et objekt i JSON-format

    Egenskapsnavn må omsluttes av anførselstegn ved bruk av doble anførselstegn (selv om noen parsere vil støtte enkle anførselstegn), og selv om noen spesialtegn er tillatt for navn (som aksenttegn), anbefales det ikke å unngå kriteriene til enkelte analysemotorer og unngå konflikter når du bruker eiendom, spesielt med dot(object.property) syntaks

    I eksemplet ovenfor kan du se et objekt som har seks egenskaper med enkle, numeriske, boolske eller tekstverdier; men i formatet JSON, kan egenskaper også tilegne seg som en verdi et objekt (inkludert "spesiell objekt" null) eller en matrise i tillegg til en tekststreng (en tekst i anførselstegn), et tall (i forskjellige formater) eller en boolsk verdi (sant eller usant ).

    Som med språket Javascript (JSON er en undergruppe av Javascript) for å uttrykke en matrise, er verdiene omsluttet av firkantede parenteser og atskilt med komma. Det enkleste tilfellet er illustrert i eksemplet nedenfor; Det er en endimensjonal matrise, en vektor, sammensatt av numeriske verdier.

    En Javascript Det er ikke nødvendig at alle elementene i en matrise er av samme type, du kan blande for eksempel tekststrenger og numeriske verdier. En vektor, en endimensjonal matrise, kan også være et av elementene i en annen matrise, slik at flerdimensjonale matriser med variable lengder kan konstrueres. Følgende eksempel viser et objekt med tre egenskaper: den første en todimensjonal matrise med faste lengder, den andre variable lengder, og den tredje dannet av en matrise med verdier av forskjellige typer.

    Følgende eksempel bruker andre objekter som verdier for det overordnede objektets egenskaper. Det er ingen begrensning på hekkingsnivået, så i sin tur kan objekter som er eiendomsverdier til forelderen også ha andre objekter som egenskapsverdier og så videre.

    Akkurat som det skjer med Javascript, brukes escape-koder for å inkludere visse tegn i en tekststreng. Den mest generiske måten er å bruke unicode-koder uttrykt med escape-linjen, bokstaven u og fire heksadesimale sifre med formatet "\u263A" å referere til ☺ for eksempel.

    Standardtegnene som finnes på de fleste språk (ligner på C) er følgende

    • tilbakegang \b Kode ASCII 8 (0x08)
    • Tabulator \t Kode ASCII 9 (0x09) Det er vanligvis representert som HT (horisontal tabulator)
    • Ny linje \n Kode ASCII 10 (0x0A) Det er vanligvis representert som LF (linjemating)
    • Ny side \f Kode ASCII 12 (0x0C) Vanligvis representert som FF (skjemafeed)
    • retur \r Kode ASCII 13 (0x0D) Det er vanligvis representert som CR (vognretur)
    • Anførselstegn \" Kode ASCII 34 (0x22)
    • delt stang \/ Kode ASCII 57 (0x2F)
    • Omvendt skråstrek \\ Kode ASCII 134 (0x5C)
    • unicode-kode \uXXXX

    Avledet fra C (og relatert til Unix og lignende, som f.eks GNU / Linux) slutten av linjen er vanligvis representert med \n og det er den som må velges inn JSON men det er interessant å huske at noen operativsystemer foretrekker andre alternativer. Windows representerer vanligvis med \r\n linjeavslutninger og Mac OS (før OS \r

    Når det gjelder det numeriske formatet, er referansen også Javascript. Desimalskilletegn er punktum, bindestrek (ASCII 45 0x2D) brukes som et negativt tegn og notasjon i eksponentiell form (Vitenskapelig notasjon) bruker E som indikator (som kan være store eller små bokstaver)

    Som jeg sa i begynnelsen, for å bruke dataene, som vil ha blitt innhentet som en tekst, har de forskjellige programmeringsspråkene analyse- og tildelingsfunksjoner. Følgende eksempel viser hvordan de vil bli brukt i Javascript. For å kunne bruke det fra en konsoll er dataoppdraget inkludert JSON For å unngå mulige feil avhengig av ECMA-standarden som brukes av tolken Javascript objekttildelingen er laget JSON i en enkelt linje. Utgave 6 av 2016 (ECMA-262) støtter flerlinjestrenger, utgave 5 (til 2011) må legge til escape-kode \ og i de forrige må du løse det for hånd eller bruke en enkelt linje.

    En advarsel om ikke å forvirre nye brukere Javascript. Inne i koden Javascript Det er ikke nødvendig å bruke en tekststreng for å lage et objekt, i forrige eksempel brukes det til å simulere data som kommer for eksempel fra en server. For å tilordne et objekt til en variabel, noe sånt som:

    Objektet kan for eksempel konverteres til tekst med funksjonen stringify som følger:

    Formatet JSON Den er ganske fleksibel, men hovedsakelig fordi den er tekstbasert for å være lesbar for mennesker, har den noen ulemper. Den første er at den krever mer minne og bruker mer båndbredde enn nødvendig. I de tidligere eksemplene har det blitt brukt et format som har som mål å være mer lesbart enn økonomisk, så de er ikke et eksempel på besparelser, selv så det er mange elementer i formatet (parenteser, parenteser, anførselstegn...) som vil fortsette å forbruke ressurser sammenlignet med informasjonen som er representert i rå.

    Det andre problemet oppstår ved håndtering av rent binære data (for eksempel bilder) Ved håndtering av små porsjoner kan det løses med det som ble forklart for å løse formateringen av spesialtegn, men hvis det dreier seg om koding av informasjon av visse dimensjoner, det vil være nødvendig å bygge det inn i formatet JSON ved å bruke et annet tekstformat. Den mest brukte kodingen for å løse dette aspektet er Base 64 siden mange språk har biblioteker for å konvertere informasjon i en eller annen retning. Hvis dataene som manipuleres hovedsakelig er av denne typen og/eller det ikke er nødvendig for en person å tolke informasjonen uten et program, er det verdt å vurdere om formatet JSON er best egnet.

    Legg inn kommentar

    Du kan ha gått glipp av