JSON | ||
---|---|---|
https://json.org/ , https://json.org/json-fr.html og https://json.org/json-it.html | ||
Generell informasjon | ||
filutvidelse | .json | |
mime-type | application/json | |
formattype | merkespråk | |
utvidet fra | javascript | |
Standarder) | STD 90 ( RFC 8259), ECMA-404 , ISO/IEC 21778:2017 | |
åpent format | ||
JSON ( JavaScript Object Notation ) er et enkelt tekstformat for datautveksling. Det er et undersett av JavaScript - objektets bokstavelige notasjon , selv om det på grunn av dets brede bruk som et alternativ til XML regnes som et språkuavhengig format.
En av de antatte fordelene med JSON fremfor XML som et datautvekslingsformat er at det er mye lettere å skrive en parser for det. I JavaScript kan en JSON-tekst enkelt analyseres ved hjelp av funksjonen eval(), noe som (på grunn av JavaScripts allestedsnærværende i nesten alle nettlesere ) har vært medvirkende til at den ble akseptert av AJAX -utviklerfellesskapet .
I praksis er argumenter for enkel utvikling av parsere eller deres ytelse av liten relevans, på grunn av sikkerhetsproblemene som oppstår ved bruk av eval()og fremveksten av naturlig XML-behandling innebygd i moderne nettlesere. Av den grunn brukes JSON ofte i miljøer der størrelsen på dataflyten mellom klient og server er av største betydning (derav bruken av Yahoo! , Google , Mozilla , osv., som betjener millioner av brukere) når kildedataene er eksplisitt klarert og hvor det ikke er viktig at du ikke har XSLT -behandling for å manipulere dataene på klienten.
Selv om JSON har en tendens til å bli vurdert som et alternativ til XML, er sannheten at bruken av JSON og XML i samme applikasjon ikke er uvanlig ; dermed må en klientapplikasjon som integrerer data fra Google Maps med værdata i SOAP ( Simple Object Access Protocol ) benytte seg av begge formatene.
I desember 2005, Yahoo! begynt å tilby valgfri JSON-støtte i noen av webtjenestene sine . [ 1 ]
På engelsk uttales JSON akronymisk , som navnet på bokstaven J ( jay , /yéi/) etterfulgt av stavelsen "son". Det vanlige resultatet, med den første understrekede stavelsen (/yéson/), uttales på samme måte som navnet Jason, selv om Douglas Crockford , utvikler av JSON-formatet, understreker den andre stavelsen, som /yeisón/. [ 2 ]
På spansk må du huske at JSON er et akronym, og at det noen ganger ikke er noen enkel måte å uttale dem på. I følge den ortografiske normen [ 3 ] vil det normale være å uttale det som /jotasón/. Noen uttaler det som /jason/, men det vil gå lenger bort fra uttalen av akronymet ved å introdusere en bokstav til som ikke finnes i akronymet (JASON) og derfor ville det være en feil uttale.
Noen som ikke er lingvister foretrekker å uttale akronymet på spansk på engelsk måte, [ 4 ] men det gjør det ikke mer korrekt, men det vil heller være mer typisk for amerikansk spanglish . FBI uttales ikke som /éfbiai/ på spansk, akkurat som /síaiei/ ikke uttales når man snakker om CIA. Det engelske akronymet ASAP ( så snart som mulig ) uttales /asap/ på spansk, ikke /eieseipi/, for språkøkonomi. I følge reglene i spansk kan det leksikaliseres som "jotasón/jotasones", men det er ingen bruk av det i akademiske tekster.
Datatypene som er tilgjengelige med JSON er:
Siden JSON er et mye brukt format for datautveksling, har APIer blitt utviklet for forskjellige språk (for eksempel ActionScript , C , C++ , C# , ColdFusion , Common Lisp , Delphi , E , Eiffel , Java , JavaScript , ML , Objective- C , Objective CAML , Perl , PHP , Python , Rebol , Ruby , Lua og Visual FoxPro ) som lar deg analysere, generere, transformere og behandle denne typen data.
De mest brukte programmeringsmodellene for å håndtere JSON på de forskjellige språkene er: [ 5 ]
I teorien er det trivielt å analysere JSON til JavaScript ved å bruke JSON.parse()språkets innebygde funksjon. For eksempel:
myObject = JSON . parse ( json_data );I praksis tilsier sikkerhetshensyn generelt mot bruk av eval på rådata, og en egen JavaScript-parser bør brukes for å sikre sikkerheten. Parseren levert av JSON.org bruker den eval()i sin parsefunksjon, og beskytter den med et regulært uttrykk slik at funksjonen bare ser sikre uttrykk.
Et eksempel på JSON-datatilgang ved bruk av XMLHttpRequest er:
var http_request = ny XMLHttpRequest (); var url = "http://example.net/jsondata.php" ; // Denne URL-en skal returnere JSON-data // Last ned JSON-dataene fra serveren. http_request . onreadystatechange = handle_json ; http_request . åpen ( "GET" , url , sant ); http_request . send ( null ); function handle_json () { if ( http_request . readyState == 4 ) { if ( http_request . status == 200 ) { var json_data = http_request . responsTekst ; var the_object = eval ( "(" + json_data + ")" ); } else { alert ( "Det var et problem med nettadressen." ); } http_request = null ; } }Merk at bruken av XMLHttpRequest i dette eksemplet ikke støttes av alle nettlesere, siden det finnes syntaktiske variasjoner for Internet Explorer , Opera , Safari og Mozilla -baserte nettlesere . [ 6 ]
Det er også mulig å bruke <iframe>skjulte elementer for å be om dataene asynkront, eller bruke forespørsler <form target="url_to_cgi_script" />. Disse metodene var de vanligste før utbredt bruk av XMLHttpRequest.
Det er et bibliotek [ 7 ] for .NET-rammeverket som eksporterer .NET-klasser med JSON-syntaks for kommunikasjon mellom klient og server, begge veier.
Nedenfor er et enkelt eksempel på menylinjedefinisjon ved bruk av JSON og XML.
JSON:
{ "menu" : { "id" : "file" , "value" : "File" , "popup" : { "menuitems" : [ { "value" : "New" , "onclick" : "CreateNewDoc()" },{ "value" : "Open" , "onclick" : "OpenDoc()" },{ "value" : "Close" , "onclick" : "CloseDoc()" } ] } } }Det er en mulig JSON-representasjon av følgende XML:
<menu id= "file" value= "Fil" > <popup> <menuitem value= "New" onclick= "CreateNewDoc()" /> <menuitem value= "Open" onclick= "OpenDoc()" /> <menuitem value= "Close" onclick= "CloseDoc()" /> </popup> </menu>Det er mange JSON-parsere på serversiden, med minst én parser for de fleste miljøer. På noen språk, som Java eller PHP , er det forskjellige implementeringer å velge mellom. I JavaScript er parsing mulig naturlig med JSON.parse(). Begge formatene mangler en mekanisme for å representere binære store objekter .
Uavhengig av XML-sammenligningen, kan JSON være veldig kompakt og effektiv hvis den brukes effektivt. For eksempel søket DHTML -applikasjonen i "BarracudaDrive" (på engelsk) . Arkivert fra originalen 21. mai 2006. mottar katalogoppføringer som JSON fra server. Denne søkeapplikasjonen spør konstant serveren etter nye kataloger, og den er bemerkelsesverdig rask, selv over en treg tilkobling.
Serversidemiljøer krever vanligvis at et JSON-parserobjekt eller -funksjon bygges inn. Noen programmerere, spesielt de som er kjent med C-språket , finner JSON mer naturlig enn XML, men andre utviklere finner dens korte notasjonen noe forvirrende, spesielt når de har å gjøre med svært nestede eller dypt nestede data.
Det er flere sammenligninger mellom JSON og XML på JSON.org [ 8 ]
YAML er et supersett av JSON som prøver å overvinne noen av begrensningene. Selv om den er betydelig mer kompleks, [ 9 ] kan den fortsatt betraktes som lett. Ruby -programmeringsspråket bruker YAML som standard serialiseringsformat . Dermed er det mulig å håndtere JSON ganske enkelt.