Json-formatet bruges til at arbejde med. Hvad er JSON og hvorfor bruge det? Oprettelse af en JSON-streng fra en JavaScript-variabel

Alle ovenstående svar fokuserer på detaljer. Så jeg vil forsøge at forklare konceptet, så du kan forstå det.

Hvad er JSON? - Hvordan jeg forklarede det til min kone TM

JEG:”Det er dybest set en måde at kommunikere med nogen på skrift... men med regler.

Kone: Ja....?

MIG: Lad os tage engelsk som eksempel: vi har regler – punktum, kommaer, parenteser, bindestreger, apostrof osv., og de betyder alle forskellige ting. Grundlæggende var vi alle enige om, hvad et punktum betød (dvs. vi skal stoppe, når vi læser).

Kone: Så du siger, at JSON er en måde at skrive engelsk til nogen på, men det har regler, som begge parter er enige om?

JEG: Nemlig! Bortset fra disse er reglerne meget specifikke. På prosaisk engelsk er reglerne ret løse: som med kampceller: du kan gøre, hvad du vil, bortset fra nogle få grundlæggende ting (som at stikke øjet). For eksempel, hvis jeg ville fortælle skattevæsenet om vores familie, kunne jeg gøre det flere gange ved at bruge prosaisk engelsk. Bemærk forskellene i alle henseender:

Mig:

Eksempel 1: Der er 4 personer i vores familie: dig, mig og 2 børn.

Eksempel 2: Vores familie: dig, mig, barn1 og barn2.

Eksempel 3: Familie: [dig, mig, barn1, barn2]

Eksempel 4: Der var 4 personer i vores familie: mor, far, barn1 og barn2.

Kone: Okay, jeg forstår billedet. Du kan sige det samme på mange forskellige måder på engelsk. Du kan tilføje et par ord her og der, et par kommaer her og der, og alle vil stadig forstå.

JEG: Nemlig. Med undtagelse af JSON er reglerne meget restriktive. Du kan kun kommunikere på en bestemt måde. Og du skal følge disse regler, så en anden forstår det: parenteser, kommaer på bestemte steder.

Kone: Hvorfor bruger de ikke bare almindeligt engelsk?

JEG: De ville, men husk, beskæftigede sig med computere. Computeren er dum og vil ikke kunne forstå sætningerne. Så vi skal være virkelig specifikke, når computere er involveret, ellers bliver de forvirrede. JSON er også en ret effektiv måde at kommunikere på, så de fleste af de irrelevante ting er skåret ud, hvilket er ret praktisk. Hvis du vil rapportere vores familie til din computer, er en måde at gøre dette på:

("Familie": ["Mig", "Kone", "Kid1", "Kid2"))

Og det er mest JSON. Men husk, du SKAL overholde reglerne for JSON grammatik. Hvis du overtræder disse regler, vil computeren simpelthen ikke forstå (dvs. analysere), hvad du skriver.

Kone: Så hvordan skriver jeg i Json?

Mig: Læs ovenstående svar for detaljer. Kort sagt, du er tvunget til at udveksle data ved hjælp af nøgle-værdi-par og arrays.

Resumé

JSON er dybest set en måde at videregive data til nogen med meget, meget specifikke regler.

JSON er et tekstformat til registrering af data. Det giver dig mulighed for i tekstform at repræsentere både et enkelt tal eller en streng og komplekse strukturer, for eksempel arrays med data. Det er praktisk at bruge dette optageformat, fordi det er læsbart og intuitivt, samtidig med at det giver dig mulighed for at gemme meget komplekse datastrukturer. Derudover er den mere kompakt end xml, så efter min mening er den mere at foretrække til udveksling af data mellem en webbrowser og en server.

JSON-syntaks med eksempler

Json-formatet er normalt skrevet i 2 varianter:

1. Sekvens af værdier. For eksempel ville sekvensen 10, 15 og "test" i JSON-format se sådan ud:

2. Optagelse i par nøgle: værdi . For eksempel:

("Fuldt navn": "Ivanov Sergey", "Fødselsdato": "03/09/1975")

Et lidt mere komplekst eksempel:

("Fuldt navn": "Ivanov Sergey", "Adresse": ("By": "Moskva", "Gade": "Pyatnitskaya", "Hus": "35") )

PHP-funktioner til at arbejde med JSON-format

I PHP-sprog siden version 5.2. der er kun 4 funktioner:

  • json_decode- Afkoder en JSON-streng (henter data fra en json-formatstreng)
  • json_encode- Returnerer en JSON-repræsentation af dataene (konverterer dataene til en JSON-streng)
  • json_last_error_msg- Returnerer en streng, der angiver fejlmeddelelsen for det sidste kald til json_encode() eller json_decode()
  • json_last_error- Returnerer den sidste fejl

Grundlæggende bruges for det meste kun to funktioner: json_encode Og json_decode. Jeg vil ikke gå i detaljer om deres syntaks, du kan se på php.net for flere detaljer. Eksempel på brug:

$arr1 = matrix(0,1,2); $json_str = json_encode($arr1); echo $json_str; // vil udlæse en json-streng: $arr2 = json_decode($json_str); ekko $arr2; // vil udsende: 1

Bemærk : kl indkodning til JSON-dataformat på russisk, konverterer funktionen json_encode russiske tegn til unicode, dvs. erstatter dem med \uXXXX og dermed bliver json-strengen ulæselig for mennesker (men forståelig for browseren). Hvis du vil undgå konvertering til Unicode (for eksempel ved fejlretning af kode), kan du blot bruge JSON_UNESCAPED_UNICODE-indstillingen.

For at undvigende skråstreger ikke tilføjes under indkodning, og så strenge med tal kodes som tal, kan du bruge JSON_UNESCAPED_SLASHES og JSON_NUMERIC_CHECK. Som et resultat, for at gøre json-strengen menneskelig læsbar, vil vi for eksempel gøre dette:

$arr = array("fio" => "Ivanov Sergey", "age" => "32", "vk_url" => "https://vk.com/id11111"); echo json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);

Uden at bruge disse muligheder ville linjen se sådan ud:

( "fio" : "\u0418\u0432\u0430\u043d\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439", "alder" : "32", "vk_url"\ /vk.com\/id11111" )

og ved at bruge mulighederne får vi en læsbar linje:

( "fio" : "Ivanov Sergey", "alder" : 32, "vk_url" : "https://vk.com/id11111" )

Endnu et punkt: hvis du har brug for funktionen til at afkode en json-streng json_decode returnerede nøjagtigt arrayet, skal du blot tilføje en anden parameter til funktionen lig med sand.

$json_str = "( "a":1, "b":2, "c":3 )"; $obj = json_decode($json_str); // få objektet ekko $obj->a; // vil udlæse 1 $arr = json_decode($json_str, sand); // få et associativt array echo $arr["a"]; // vil udskrive 1

Dette afslutter min gennemgang af PHP-funktioner.

JavaScript-funktioner til at arbejde med JSON-format

Lad os starte med det faktum, at JSON-formatet oprindeligt blev opfundet til JavaScript-sproget og derefter blot blev et separat tekstformat brugt på forskellige sprog. Det er tilsyneladende derfor, at JSON-syntaksen er meget lig syntaksen til at skrive almindelige objekter og arrays.

// Eksempel på et array i JavaScript arr = ; alarm(arr); // vil vise 1 // Eksempel på et objekt i JavaScript obj = ( "name": "Vasya", "age": 35, "isAdmin": false ) alert(obj.name); // vil udskrive "Vasya"

JavaScript-funktioner, der bruges til at konvertere til og fra JSON-format:

  • JSON.parse- afkodning af JSON-streng (konverterer streng til objekter og/eller arrays)
  • JSON.stringify- returnerer en JSON-repræsentation af data (konverterer objekter og/eller arrays til en json-streng)

Et simpelt eksempel på afkodning af en json-streng til et array med tal:

Str = ""; arr = JSON.parse(str); alarm(arr); // vil udskrive 1

Et eksempel på konvertering (serialisering) af et objekt til en JSON-streng:

Obj = ( "navn": "Vasya", "alder": 35, "isAdmin": falsk ) alert(JSON.stringify(obj)); // vises ("navn":"Vasya","alder":35,"isAdmin":falsk)

Når man serialiserer (konverterer) et objekt til en JSON-streng, kaldes metoden til JSON dette objekt, hvis det findes. Hvis der ikke er nogen metode, er alle egenskaber for objektet listet. Et eksempel på konvertering af et objekt med toJSON-metoden:

Obj = ( "name": "Vasya", "age": 35, "isAdmin": false, toJSON: function() ( return this.age; ) ) alert(JSON.stringify(obj)); // vil udskrive 35

Eksempler på praktisk anvendelse af JSON-formatet

Faktisk bruger jeg personligt JSON-formatet i 2 hovedsituationer:

1. Overførsel af data mellem browseren og serveren ved hjælp af Ajax-anmodninger.

For eksempel har vi en side, hvor vi skal opdatere data uden at genindlæse siden. Lad os sige, at du har brug for information med en liste over medarbejdere og deres data, der skal "downloades" fra serveren.

I JavaScript, ved hjælp af jQuery, gør vi det enkelt og viser dataene i form af en tabel i browseren:

$.getJSON("get-info.php").success(function(data) ( // ajax request, data fra serveren vil blive skrevet til datavariablen htmlstr = "

"; for (var i=0; i "; // første kolonne - fulde navn htmlstr += " "; // anden kolonne - fødselsdato htmlstr += ""; ) htmlstr = "
" + data[i].fødselsdag + "
"; $("div.info").html(htmlstr); // i en div med infoklassen viser vi den resulterende tabel med data ));

På serveren kunne get-info.php-scriptet, som en ajax-anmodning sendes til, for eksempel være sådan her:

$brugerinfo = array(); // opret et array med data $user_info = array ("fio" => "Ivanov Sergey", "fødselsdag" => "03/09/1975"); $user_info = array ("fio" => "Alexey Petrov", "fødselsdag" => "18/09/1983"); echo json_encode($brugerinfo); Afslut;

I dette eksempel var JSON-strengen, der blev sendt fra serveren til browseren, sådan her:

[("fio":"Sergey Ivanov","fødselsdag":"03/09/1975"),("fio":"Alexey Petrov","fødselsdag":"18/09/1983")]

Jeg viste bevidst ikke stregen i form af et "træ", fordi det transmitteres nøjagtigt i denne form. Og hvordan kan du vurdere, optagelse af data i JSON-format viste sig at være meget kompakt, hvilket betyder, at overførslen af ​​disse data fra serveren til browseren vil være næsten øjeblikkelig.

2. Skrivning af komplekse datastrukturer til databasen.

Nogle gange er der situationer, hvor det ikke er tilrådeligt at oprette en anden tabel i databasen for at gemme forskellige data. Lad os sige, at en bruger, der er registreret på webstedet, har mulighed for at tilpasse baggrundsfarven og tekstfarven.

I stedet for at oprette endnu en tabel for 2 indstillinger, kan du blot oprette en tekstkolonne i tabellen med listen over brugere, hvori brugerindstillingsdataene skal placeres. Så kunne anmodningen om opdatering af indstillinger for eksempel være sådan her:

OPDATERE brugere SET-indstillinger = "("baggrundsfarve":"#FFFFFF", "tekstfarve":"#000000")" WHERE user_id = 10

I fremtiden, efter at have modtaget fra bordet brugere oplysninger, kan php-scriptet nemt gøre dem tilbage til et array med indstillinger. For eksempel, hvis $user_info-variablen indeholder data opnået for en bruger fra brugertabellen, er det meget simpelt at få et array med indstillinger:

$settings = json_decode($user_info["indstillinger"], sand); echo "Baggrundsfarve = ".$settings["baggrundsfarve"]; echo "Tekstfarve = ".$indstillinger["tekstfarve"];

I JSON-format kan du også fx registrere i databasen, hvilke produktmuligheder køberen har valgt.

("15":["45","47"), "18":"52") // option 15 har værdierne 45 og 47 valgt, og option 18 har værdien 52 valgt

I princippet kan du endda skrive hele indholdet af kurven i JSON-format, for eksempel sådan her:

( "user_id" : 10, "session_id" : "2c2l3h4ii271aojentejtdcmh3", "products": [ ( "product_id" : 15, "options" : ( "15" : , "18" : 52), "quantity" : 1 "price" : 1500 ), ( "product_id" : 16, "options" : ( "15" : , "18" : 51 ), "quantity" : 2, "price" : 1000 ) ] )

I sin sædvanlige ikke-træform ville denne JSON-streng være sådan her:

("user_id":10,"session_id":"2c2l3h4ii271aojentejtdcmh3","products":[("product_id":15,"options":("15":,"18":52),,"quantity":1 , "price":1500),("product_id":16,"options":("15":,"18":51),,"quantity":2,"price":1000)])

Som det fremgår af eksemplerne, kan næsten enhver information således lagres og transmitteres i JSON-formatet.

Variabler, arrays og objekter er en velkendt og bekvem form for datarepræsentation. Det er sædvanligt at beskrive data i browsersproget JavaScript, hvilket ikke er nødvendigt i PHP-serversproget. JSON-formatet giver dig mulighed for at opsummere dem i én helhed og ikke fokusere på programmeringssproget. I dette tilfælde bliver dataene til par: "navn = værdi". Værdien i hver af dem kan også være en samling af sådanne par.

Det er sædvanligt at forbinde JSON med krøllede seler, og sidstnævnte er ret berettiget, da JSON-formatet = JavaScript Object Notation. Meget har ændret sig i de seneste særligt dynamiske år. Det, der blev skabt til et bestemt formål, gav ofte uventede resultater eller åbnede nye horisonter.

Dataudveksling: browser - server

AJAX-teknologi er blevet traditionel, regelmæssig sideopdatering helt er holdt op med at være populær. En besøgende, der åbner et websted, starter en række delvise dataudvekslinger, når visse sider kun ændres på det sted, der er relevant.

Det menes, at fremkomsten af ​​JSON er forbundet med brugen af ​​AJAX, men faktisk har associativ og dens objektnotation (funktioner i syntaksen til beskrivelse og brug af objekter) et meget mere relateret forhold til JSON end udveksling af data mellem browseren og serveren.

Siden indholdet af siderne på moderne websteder virkelig er blevet "massivt" (voluminøst), har effektiviteten af ​​formatet til dataudveksling fået særlig betydning. Dette er ikke for at sige, at JSON er blevet en ny datarepræsentation, men det faktum, at det længe har været et element i JavaScript-syntaks, er væsentligt.

Brugen af ​​kyrillisk i navngivning af variabler er et meget uventet fænomen (nonsens), men det virker i de nyeste versioner af Chrome, Firefox og endda Internet Explorer 11.

Kyrillisk og JSON

Selvfølgelig er der ingen mening i at bruge dette helt uventede fænomen og huske, hvor let værdierne af variabler skrevet med russiske bogstaver bliver til volapyk: hvad kan vi sige om navne, især eksterne.

Det er tvivlsomt, om initiativet i kyrilliske navne vil blive understøttet af browserens eksterne miljø, som det hele tiden skal forholde sig til. Men dette faktum fortjener opmærksomhed af den simple grund, at JSON-formatet er evnen til at skrive navne og værdier, som udvikleren ønsker. Dette er vigtigt, da beskrivelsen af ​​applikationsområdet, som det kræver det, i hver opgave forenkler fejlfindingen betydeligt og reducerer antallet af fejl.

Det er lige meget hvad grundlaget for den syntaktiske innovation - JSON - var, det er vigtigt, at det gav den juridiske ret og den reelle mulighed for at sætte korrespondancen: "ethvert navn = enhver værdi."

Vi skal hylde JavaScript-sproget: det, der leveres af syntaksen, forpligter ikke udvikleren og pålægger ham ikke noget. Udvikleren bruger frit sprogsyntaksen til optimalt at danne en datamodel og en algoritme til deres brug.

PHP og JSON

Ved at acceptere data i JSON-format giver serveren (via PHP, især) mulighed for at behandle dem som de er og returnere resultatet tilbage til browseren i et lignende format. PHP kilde array:

  • $cJSON = array ("a"=> "alfa", "b"=> "beta", "g"=> "gamma").

Konverter til JSON til levering til browser:

  • $cJS = json_encode($cJSON).

Resultat:

  • ("a":"alfa","b":"beta","g":"gamma").

Redningen vist på billedet er tilladt.

Her blev det genererede array tilføjet med et nyt element "i sig selv" med det automatiske indeks "0", og derefter igen med det angivne indeks "z".

Json_decode() konverterer en JSON-streng til et PHP-array. Lignende resultater kan opnås ved at manipulere funktioner og eksplodere(). I nogle tilfælde er denne mulighed at foretrække.

Indlejringsniveau

Elementer kan indlejres både på browsersiden og på serversiden. I praksis giver JSON-formatet (RFC 4627 standardbeskrivelse) betydeligt mere end 4 niveauer af indlejring, men denne funktion bør ikke misbruges.

Det er bedst aldrig at gå ud over rimelig tilstrækkelighed; dette gør koden læsbar, hvilket gør det lettere at fejlsøge og forstå for andre udviklere.

JSON omtales almindeligvis som datakonstruktioner, der er enklere end XML og forståelige for både mennesker og computere. Dette gælder, når mængden af ​​data er lille, og udvikleren har valgt indlejringsniveauet med omhu. I alle andre tilfælde er det svært at tælle antallet af parenteser og forstå både på browsersiden og på serversiden.

JSON filer

Brugen af ​​JSON i praksis er ofte ikke begrænset til en kort streng, der kan læses af mennesker. Enhver datakonstruktion er altid pragmatisk. Samtidig kan JSON effektivt bruges både i reelle opgavedata (virksomhedspersonale) og til implementering af midlertidige data (objektcache).

Enterprise personale og JSON-format: eksempel

Normalt er en optegnelse om én person et efternavn, fornavn, patronym, fødselsår, speciale, uddannelse, ... og et par andre simple værdier. Selv i særligt krævende virksomheder vil en rekord på én person ikke overstige et dusin eller to felter. Dette er mærkbart og kan placeres i en databasestreng.

Hvis en virksomhed beskæftiger flere personer, er det én ting, men hvis der er titusindvis, er det helt anderledes. Du kan fortsætte med at bruge databasen, men at gemme den som en fil virker mere praktisk og tilgængelig at bruge.

JSON er en almindelig tekstfil. Sagen med bemandingsbordet siger sig selv. Du kan altid læse den. Åbning og redigering er også tilgængelig i enhver teksteditor, der ikke har for vane at tilføje sine egne serviceoplysninger til indholdet af filen. Generelt er *.json ren tekst både inde i browseren og inde i filen - en streng.

Billedet viser cachen for det objekt, der danner billedet, et eksempel.

Dette er et eksempel på indholdet af en fil, der er genereret af et websted, der leverer 3D-farveprint på krus og keramik. Naturligvis er det virkelig problematisk at have sådan et JSON-format, at beslutte, hvordan man åbner det. Men i dette og lignende tilfælde er der ingen problemer med at læse filen: PHP læser filen, analyserer den og sender den til browseren. De data, der ændres af den besøgende, returneres til serveren og skrives tilbage.

I dette tilfælde fungerer filen som en variabel, der er gemt uden for koden. Variablen modtager om nødvendigt en værdi fra filen, og hvis den ændres af den besøgende i dialogen fra siden, så vil alle ændringer blive registreret som de er. Der er ingen grund til at læse og kontrollere indholdet af filen.

JSON bruges ofte til at gemme og bruge serviceoplysninger - dette er ikke en personaletabel, og hverken udvikleren eller den besøgende behøver at se den.

XML og JSON

"Der er en tid for alt" er en klassisk viden, der accepteres som et aksiom allerede før programmeringens fremkomst. "Intet dukker bare op" - dette skete også før mennesket skrev det første forståelige program på et kunstigt sprog.

Dataformater udspringer af reelle behov og er baseret på opnået viden. HTML har sin egen sti, XML har sin egen sti, og JSON er JavaScript-objektlogik udvidet til andre sprog. At sammenligne en med en anden er ikke den bedste ting at gøre. Til hver sit.

XML klarer sine opgaver fantastisk og kommer tydeligvis ikke til at blive historie. Og JSON blev brugt indtil 2006; det er bare, at ikke alle udviklere anså det for sin pligt at erklære visse muligheder for at repræsentere deres data.

Der har været tilfælde i praksis, hvor programmer blev skrevet i BASIC, der ikke brugte JSON som sådan, men perfekt gemte "navn = værdi"-par og gjorde dem tilgængelige for de rigtige algoritmer på det rigtige tidspunkt.

Specialtegn ("`", "~", "|", ...) og dataformater

Vanen med at arbejde med associative arrays og objekter i JavaScript gør det naturligt og bekvemt at bruge JSON. Dette er et rigtig godt format, men evnen til at adskille og forbinde, manipulere strenge og arrays, har meget dybere rødder.

Join/split-funktionerne i JavaScript-sproget og implode/explode af PHP-sproget giver dig mulighed for bekvemt og effektivt at bruge både XML, JSON-dataformater og din egen version. Sidstnævnte er ofte optimalt, mens de to første er ideelle til generelle brugsmuligheder. Hvis information bliver overført til en anden udvikler, server, fil eller database, er der ingen bedre måde at finde XML og JSON på. Alle arbejder med dem, så overførsel/modtagelse af information kræver ikke kommentarer.

Bruger JSON i Android

At læse og skrive data i JSON-format i Android er ikke kun normen, men der er også mange objekter, der fokuserer på at arbejde med netop dette dataformat.

I dette tilfælde bruges JSON-formatet. Dette kan være sandt, men spørgsmålet er ikke fænomenaliteten af ​​sociale netværk, men det faktum, at præsentation af information i formatet "navn = værdi" er virkelig praktisk både til programmering og brug. I modsætning til det strenge og komplekse "XML" er dette virkelig et menneskevenligt format.

Associative Arrays

Det sker, at variabler skal beskrives (JavaScript), eller i det mindste skal en begyndelsesværdi angives (PHP). I begge tilfælde kan variablen meget nemt ændre sin type. Sproget udfører denne konvertering automatisk, hvis det er nødvendigt.

Men hvorfor skulle variablen ikke også skifte navn, dukke op under udførelsen af ​​algoritmen og forsvinde, når den ikke længere er nødvendig? Associative arrays løser dette problem, men når man så bruger sådanne relativt dynamiske variable, vil arraynavnet og de tilsvarende syntaktiske konstruktioner følge, hvor de bruges.

Denne omstændighed er især udtalt i PHP, men du kan affinde dig med det, som faktisk med "$"-symbolet i variabelnavnet og "$this->"-kombinationen inde i objektet. Programmering i JavaScript og PHP på samme tid, først bliver man virkelig overrasket over, hvor forskelligt alt er, men så bliver alt så velkendt og naturligt...

Associative Array -> JSON

I dette eksempel oprettes et *.docx-dokument ved hjælp af PHPOffice/PHPWord-biblioteket, og aProperties-arrayet indeholder egenskaberne for dette dokument (forfatter, firma, titel, kategori, oprettelsesdato...).

Det andet array indeholder data for siden:

  • orientering (landskab eller normal);
  • lodrette og vandrette dimensioner;
  • indrykninger (margener venstre, top, bund, højre);
  • sidehoveder og sidefødder.

Dokumentet genereres på den server, hvor PHPOffice/PHPWord-biblioteket er installeret. Siden giver dig mulighed for at administrere værdierne af disse arrays ved hjælp af JavaScript. Resultatet i JSON-format returneres tilbage til serveren og bruges i PHP-algoritmer, i dets konstruktioner, det vil sige i arrays.

Dynamiske variabler

JSON-formatet løser problemet med dynamiske variable. Her kan du oprette, ændre og slette variabler uden unødvendigt syntaktisk rod. Det ser pænt ud og bruges i JavaScript.

I dette eksempel henter funktionen GetOjInfo() værdiens navn og værdi fra et objekt. I første omgang har JSON-strengobjektet, der er tildelt til variablen ojInfo, tre elementer: Navn, alder og arbejde. Lidt senere tilføjes Status-variablen.

Efter den første delete-operator mister ojInfo-linjen alderselementet, efter den anden sletning mister den arbejdselementet. Hvis vi antager, at denne streng er et udvalg af variabler, der har en bestemt betydning, så ved hjælp af JSON kan du faktisk oprette, ændre og slette ethvert sæt af dem uden for det operationelle felt (syntaks) til at beskrive og behandle JavaScript-sproget.

JSON-formatet er ikke designet til denne mulighed, men det er muligt, praktisk og praktisk.

JSON(JavaScript Object Notation) er et simpelt dataudvekslingsformat, der er nemt at læse og skrive af både mennesker og computere. Det er baseret på en delmængde af JavaScript-programmeringssproget, defineret i standarden ECMA-262 3rd Edition - December 1999. JSON er et tekstformat, der er fuldstændig uafhængigt af implementeringssproget, men det bruger konventioner, der er kendt for programmører af C-lignende sprog, såsom C, C++, C#, Java, JavaScript, Perl, Python og mange andre. Disse egenskaber gør JSON til et ideelt dataudvekslingssprog.

JSON er baseret på to datastrukturer:

  • En samling af nøgle/værdi-par. På forskellige sprog er dette koncept implementeret som et objekt, post, struktur, ordbog, hash, navngiven liste eller associativ array.
  • En ordnet liste over værdier. På de fleste sprog er dette implementeret som array, vektor, liste eller sekvens.

Disse er universelle datastrukturer. Næsten alle moderne programmeringssprog understøtter dem i en eller anden form. Det er logisk at antage, at et dataformat, uafhængigt af programmeringssproget, skal baseres på disse strukturer.

I JSON-notation ser det sådan ud:

Et objekt- et uordnet sæt nøgle/værdi-par. Et objekt begynder med ( en åbnende krøllet bøjle og slutter med en ) lukkende krøllet bøjle. Hvert navn efterfølges af: et kolon, nøgle/værdi-par adskilt af et komma.

Array- en ordnet samling af værdier. Arrayet begynder med en [ åben firkantet parentes og slutter med ] en afsluttende firkantet parentes. Værdier er adskilt med komma.


Betyder Måske linje i dobbelte anførselstegn, nummer, sand , falsk , null , objekt eller array. Disse strukturer kan indlejres.


Linje er en samling af nul eller flere Unicode-tegn, omgivet af dobbelte anførselstegn, der bruger \ omvendt skråstreg som escape-tegn. Tegnet er repræsenteret som en streng på ét tegn. Lignende syntaks bruges i C og Java.


Nummer Det er repræsenteret på samme måde som i C eller Java, bortset fra at kun decimaltalsystemet bruges.


Mellemrum kan bruges mellem alle tokens.

Bortset fra nogle kodningsdetaljer, beskriver ovenstående fuldstændigt sproget.


Vi har udgivet en ny bog, Social Media Content Marketing: How to Get Inside Your Followers' Heads and Make Them Fall in Love with Your Brand.

JSON er et tekstbaseret dataudvekslingsformat baseret på et multi-paradigme programmeringssprog. Dens hovedformål er at lagre og overføre en struktureret informationsstrøm.

Ved at bruge enkle regler til at konstruere tegn i JavaScript, kan en person give en nem og pålidelig måde at gemme enhver form for information på, det være sig et simpelt tal, hele strenge eller et stort antal forskellige objekter udtrykt i almindelig tekst.

Derudover bruges JSON-formatet til at kombinere objekter og datastrukturer til et sæt komponenter, og derved danne softwareenheder, der giver dig mulighed for at lagre og behandle komplekse poster, der består af flere variable af forskellige typer.

Når først filen er oprettet, er linjerne, den indeholder, ret nemme at omdirigere til en anden placering på netværket gennem en hvilken som helst datasti. Dette skyldes, at strengen er almindelig tekst.

Hvad betyder JSON?

Selvom det kan bruges på næsten alle scriptsprog, refererer dets navn til JavaScript. Værktøjet har følgende fordele:

  1. Optager et relativt lille volumen og er kompakt.
  2. Tekstindhold kan nemt genereres og læses af computere og mennesker.
  3. Kan nemt konverteres til en struktur for næsten alle typer formelle sprog, der bruges til at skabe computerprogrammer.
  4. De fleste programmeringssprog, det være sig JavaScript, Ruby, Python eller PHP, er udstyret med funktioner og specialværktøjer til at læse og redigere en fil.

I langt de fleste tilfælde bruges JSON-formatet til at arbejde med at overføre information fra serveren til browseren. Denne proces foregår normalt i baggrunden mellem browseren og webserveren, og leveringen udføres ved hjælp af AJAX. Dette skyldes, at der under dataleveringsprocessen ikke er behov for at genindlæse siden.

Det fungerer i henhold til følgende scenarie:

  1. For eksempel klikker en bruger på et produktkort i en netbutik.
  2. JavaScript, indbygget i browseren for at gøre websider mere funktionelle, genererer en anmodning ved hjælp af AJAX til en PHP-script programfil, der kører på serveren. Takket være dette overføres ID'et for det valgte produkt.
  3. PHP script programfilen accepterer produktnavn, beskrivelse, pris og andre oplysninger indeholdt i databasen.
  4. Herefter genereres en streng og sendes til browseren.
  5. JavaScript tager denne streng, rekonstruerer den information, den indeholder, fra dens kodede repræsentation og viser derefter information om det valgte produkt på brugerens webside.

Alt dette sker i løbet af få millisekunder. Men hvis JavaScript er deaktiveret på din computer af en eller anden grund, indlæses websiden ikke eller vil vise fejl.

Sådan fungerer JSON-formatet

I JSON er datatyper opdelt i flere kategorier: simple og komplekse. Den første type inkluderer først og fremmest tekststrenge og tal, den anden - objekter. I alt er der seks hovedtyper:

  1. Tal. I dette tilfælde kan tal enten være heltal uden fortegn eller heltal med fortegn. Det kan især indeholde en brøkdel og en repræsentation af reelle tal i form af en brøkdel af en logaritme og en rækkefølge. Filen tillader brugen af ​​heltal og floating point division ligeligt. Denne teknik bruges i JavaScript til alle numeriske værdier uden undtagelse, men andre matematiske biblioteker, der bruger den, kan kode ved hjælp af helt andre algoritmer.
  2. En vilkårlig sekvens (streng) af latinske tegn, tal og tegnsætningselementer (fra nul og Unicode-tegn). Hver efterfølgende linje er adskilt fra den foregående linje med et par tegnsætningstegn - anførselstegn ("tekst") eller ved at bruge et symbol, med omvendt stavning af det sædvanlige symbol, en skråstreg.
  3. Bogstaver eller konstanter inkluderet direkte i teksten. Dette kan være en hvilken som helst værdi fra sand og falsk eller deres ækvivalenter.
  4. Array. Det er en ordnet liste over tegn fra nul og fremefter. Hvert tegn kan repræsenteres i enhver form.
  5. Et objekt. Dette er en kaotisk sammensat sammensætning af nøgle/værdi-par. Fordi objekters primære funktion er at repræsentere en abstrakt datatype, anbefales det (men ikke påkrævet), at nøgler er unikke.
  6. En tom værdi, angivet med ordet "Nul".

Mellemrum mellem tegn er tilladt, hvis de bruges mellem syntaktiske enheder. For at gøre dette bruges flere symboler: den sædvanlige indrykning, vandrette tekstfaner og en skråstreg.

Sådan åbner du JSON-format

Tekstdataudvekslingsformatet kan repræsenteres i populære kodningsstandarder, som gør det muligt at lagre og transmittere Unicode-tegn mere kompakt. Især standarden her er UTF-8. UTF-16 og UTF-32 kan også bruges. Deres brug er bestemt af det faktum, at alle tre standarder understøtter hele tegnsættet.

Men hvis de er escaped (ikke citeret) for at blive brugt som et regulært udtryk, kan de skrives til at repræsentere tegn i yderligere planer ved hjælp af UTF-16.

Den nemmeste måde at åbne JSON-format på er at bruge Notesblok på pc. For at gøre dette skal du oprette og åbne et nyt tekstdokument, vælge "Filer" i øverste venstre hjørne og derefter "Åbn".

Når du har fundet det ønskede dokument, skal du klikke på Stifinder-knappen "Åbn".

Dokumentet åbnes og er tilgængeligt for visning og redigering.

Derudover er der tredjepartsprogrammer til at åbne JSON-formatet. Blandt dem er Altova XMLSpy, Notepad++, Komodo Edit, Sublime Text osv.

Sådan opretter du en fil

JSON-formatet bruges normalt til at arbejde (lagre og bruge) serviceoplysninger. Normalt er dette en personaletabel, som hverken udvikleren eller publikum af webressourcen skal se.

Der er flere måder at oprette en fil med den passende filtypenavn. Først og fremmest kan dette gøres ved hjælp af en almindelig teksteditor, som er en del af Microsoft Windows-operativsystemet. For at gøre dette skal du åbne Notesblok, indsætte den relevante kode og gemme dokumentet i den sædvanlige og eneste tilgængelige udvidelse. Herefter skal du ændre det til den ønskede mulighed.

Den anden metode involverer brug af tredjepartstjenester. Den mest populære er JSON Editor Online. Det er meget mere praktisk end Notesblok-indstillingen. Servicegrænsefladen præsenteres i form af to arbejdszoner.

I den første zone foregår selve arbejdet med at generere data, i den anden zone findes værktøjer til dette. Når oprettelsesprocessen er afsluttet, skal du klikke på knappen "Gem" og vælge, hvordan du gemmer resultatet: på disk eller online.

Som allerede nævnt er det meget mere praktisk at bruge onlinetjenesten end Notesblok. Dette skyldes, at tjenesten automatisk opdager syntaksfejl under drift og fremhæver dem, så brugeren kan bemærke udeladelser og rette dem med det samme.