# JSONKirill

**JSON(ingl. JavaScript Object Notation)* — bul atribut-mánis jupları menen massivlerden (yamasa basqa seriyalanatuǵın mánislerden) ibarat maǵlıwmatlar obyektlerin saqlaw hám jetkerip beriw ushın adam oqıy alatuǵın tekstti paydalanatuǵın ashıq standart fayl hám maǵlıwmatlar almasıw formatı. Yaǵnıy JSON − JavaScript tiykarındaǵı tekstli maǵlıwmatlar almasıw formatı.

JSON – tilge ǵárezsiz maǵlıwmatlar formatı. Ol JavaScript-ten alınǵan, biraq kóplegen zamanagóy programmalastırıw tillerinde JSON formatındaǵı maǵlıwmatlardı jaratıw hám tallaw (analizlew) ushın kod bar. JSON fayl atları .json keńeytpesinen paydalanadı.

Duglas Krokford dáslep JSON formatın 2000-jıllardıń basında kórsetti. Ol hám Chip Morningstar birinshi JSON xabarın 2001-jıl aprelde jiberdi.

## Atı hám aytılıwı

2017-jıldaǵı xalıqaralıq standart (ECMA-404 hám ISO/IEC 21778:2017) «JSON» sózi «Djeyson menen Argonavtlar» sıyaqlı *inglisshe /ˈdʒeɪ.sən/* dep aytılatuǵının kórsetedi. ECMA-404 birinshi (2013 j.) basılımı aytılıwǵa baylanıslı emes. UNIX hám Linux sistemasın basqarıw qollanbasında bılay delingen: «JSON formatın ataǵan hám onı úgit násiyatlaǵan Duglas Krokford onıń Djeyson atına uqsaytuǵının aytadı. Biraq áytewir, texnikalıq jámiyetshilikte keń tarqalǵan sıyaqlı» Krokford 2011-jılı: «Bunı qalay aytatuǵınıńız tuwralı kóplegen dawlar bar, biraq maǵan báribir.»

## Standartlar

RFC 4627 «informaciyalıq» specifikaciyası retinde 2006-jıldan berli bar bolǵannan keyin, JSON birinshi ret 2013-jılı ECMA-404 retinde standartlastırılǵan. 2017-jılı járiyalanǵan RFC 8259 STD 90 Internet Standartınıń aǵımdaǵı versiyası bolıp tabıladı hám ol ECMA-404 standartına sáykes keledi. Sol jılı JSON da ISO/IEC 21778:2017 retinde standartlastırılǵan. ECMA hám ISO/IEC standartları tek ruqsat etilgen sintaksisti klassifikaciyalaydı, al RFC ayırım qáwipsizlik penen óz-ara háreketlesiw máselelerin qamtıydı.

## Tariyxı

Duglas Krokford Yahoo imaratında (2007)
JSON 2000-jıllardıń basında qollanılǵan ústem metodlar Flash yamasa Java appletleri sıyaqlı brauzer plaginlerin paydalanbay, anıq waqıttaǵı serverden brauzerge seans baylanısı protokolınıń mútájliginen payda boldı.

Krokford aldı menen JSON formatın anıqlap, onı en jaydırdı. Bul abbreviatura 2001-jıl martta Krokford hám basqaları tiykar salǵan State Software kompaniyasında payda boldı. Qurıltayshılar standart brauzer imkaniyatların paydalanatuǵın sistemanı jaratıwǵa kelisti hám veb-baǵdarlamashılarǵa turaqlı dupleks jalǵanıwına iye veb-qosımshalardı jaratıw ushın abstrakciyalıq dárejeni támiyinledi. Eger qosımsha maǵlıwmatlar almasıw bolmasa, eki Hypertext Transfer Protocol (HTTP) jalǵanıwın ashıq uslap turıw arqalı veb-serverdi standart brauzer taym-autlarına shekem qayta islew imkaniyarına iye. Qurıltayshılar dóńgelek stolda pikirlesiwler alıp bardı hám maǵlıwmatlar formatın JSML (JavaScript Markup Language) yamasa JSON (JavaScript Object Notation) dep ataw kerek pe, sonday-aq onı qanday licenziya túri menen paydalanıw múmkinligi haqqında dawıs berdi. JSON.org veb saytı 2001-jılı iske qosıldı. 2005-jıl dekabrde Yahoo! JSON ishinde ayırım veb-xızmetlerin usına basladı.

JSON kitapxanalarınıń prekursorı Communities.com saytındaǵı Cartoon Orbit atlı balalarǵa arnalǵan cifrlı aktivlerdi satıw oyını proektinde Cartoon Network ushın paydalanıldı, ol jeke menshik huqıqı bar brauzer tárepindegi jalǵanatuǵın moduldi paydalandı. DHTML elementlerin basqarıwǵa arnalǵan xabar almasıw formatı (bul sistemada 3DO kompaniyasına tiyisli). Ajax-tıń dáslepki imkaniyatların ashqannan keyin digiGroups, Noosh hám basqaları informaciyanı veb-qosımshanıń vizual kontekstin jańalamastan, tek standart HTTP, HTML hám JavaScript arqalı anıq waqıttaǵı keń kólemli veb-qosımshalardı ámelge asırıw ushın paydalanıwshı brauzerleriniń vizual qatarına jiberiw ushın Netscape 4.0.5+ hám Internet Explorer 5+  freymlerinen paydalandı. Sonnan keyin Krokford JavaScript bunday sistema ushın obyektke tiykarlanǵan xabar almasıw formatı retinde paydalanıwı múmkin ekenin anıqladı. Bul sistema Sun Microsystems, Amazon.com hám EDS kompaniyalarına satıldı.

JSON JavaScript scenariy tiliniń ishki toplamına tiykarlanǵan (anıǵıraq aytqanda, Standard ECMA-262 3-basılımı −1999 j. dekabr) hám JavaScript penen jiyi paydalanıladı, biraq ol tilden ǵárezsiz maǵlıwmatlar formatı bolıp tabıladı. JSON maǵlıwmatların tallawǵa hám generaciyalawǵa arnalǵan kod kóplegen programmalastırıw tillerinde bar. JSON veb-saytında JSON kitapxanalarınıń til boyınsha dizimi keltirilgen.

## Sintaksisi

Tómendegi mısalda adamdı táriypleytuǵın JSON kórinisi kórsetilgen.

```
{
 "first\_name": "Alpamıs",
 "last\_name": "Qarajanulı",
 "is\_alive": true,
 "age": 27,
 "address": {
 "street\_address": "21-kóshe",
 "city": "Xalqabat",
 "state": "Kegeyli",
 "postal\_code": "10021-3100"
 },
 "phone\_numbers": [
 {
 "type": "úy",
 "number": "212 555-1234"
 },
 {
 "type": "keńse",
 "number": "646 555-4567"
 }
 ],
 "children": [
 "Gúlparshın",
 "Gúlayım",
 "Ótesh"
 ],
 "spouse": null
}

```

### Simvollardı kodlaw

Krokford dáslebinde JSON JavaScript hám ECMAScript-tiń qatań ishki toplamı dep málimlegeni menen, onıń specifikaciyası is júzinde JavaScript bolmaǵan haqıyqıy JSON hújjetlerine imkaniyat beredi; JSON U+2028 LINE SEPARATOR hám U+2029 PARAGRAPH SEPARATOR yunikod qatar terminatorlarına tırnaqshaǵa alınǵan qatarlarda bos emes bolıp kóriniwine imkaniyat beredi, al ECMAScript 2018 hám onnan joqarı versiyalarında bul bolmaydı. Bul JSON-nıń tek «basqarıw simvollarına» ruqsat bermewiniń sebebi. Maksimal kóshiriw ushın bul simvollar keri sızıqtı alıp taslawı kerek.

Ashıq ekosistemadaǵı JSON almasıwı UTF-8 formatında kodlanıwı kerek. Kodlaw tiykarǵı kóp tilli keńislikten (U+0000 - U+FFFF) tıs simvollardı qosqanda, tolıq Yunikod simvollar toplamın qollaydı. Degen menen, eger qashıp ketse bul simvollar UTF-16 surrogat jupları arqalı jazılıwı kerek. Mısalı, U+1F610 😐 NEUTRAL FACE emodzi simvolın JSON ishine qosıw ushın:

```
{ "face": "😐" }
// or
{ "face": "\uD83D\uDE10" }

```
JSON tiliniń 2019-jıldaǵı versiyası boyınsha ECMAScript-tiń qatań ishki toplamına aylandı.

## Qollanılıwı

JSON-RPC — XML-RPC yamasa SOAP ornın almastırıw retinde JSON tiykarında qurılǵan aralıqtaǵı proceduralı shaqırıw (RPC) protokolı. Bul bir neshe maǵlıwmatlar tipleri menen buyrıqların anıqlaytuǵın ápiwayı protokol. JSON-RPC sistemaǵa xabarlandırıwlardı (juwaptı talap etpeytuǵın serverge informaciya) hám serverge retsiz juwap beriwge bolatuǵın bir neshe qońırawlardı jiberiwge imkaniyat beredi.

Asinxron JavaScript hám JSON (yamasa AJAJ) Ajax sıyaqlı dinamikalıq veb-bet metodologiyasına silteme beredi, biraq XML ornına JSON maǵlıwmatlar formatı bolıp tabıladı. AJAJ − veb-bettiń veb brauzerge júklengennen keyin jańa maǵlıwmatlardı soraw imkaniyatın támiyinleytuǵın veb islep shıǵıw texnikası. Ádette, ol sol veb-bettegi paydalanıwshı háreketlerine juwap retinde serverden jańa maǵlıwmatlardı kórsetedi. Mısalı, paydalanıwshı izlew maydanına ne teretuǵının, klient tárepinen kodtı serverge jiberedi, ol operativ sáykes maǵlıwmatlar bazası elementleriniń ashılatuǵın dizimi menen juwap beredi.

JSON konfiguraciya tili retinde arnawlı paydalanıwdı kórdi. Degen menen, ol pikirlerdi qollamaydı.
2012-jılı JSON jaratıwshısı Duglas Krokford konfiguraciya tili retinde paydalanılǵanda JSON tilindegi kommentariyalar tuwralı bılay dedi: «Kommentariyalardıń bolmawı ayırım adamlardı renjitetuǵının bilemen, biraq onday bolmawı kerek. Meyli siz saqlaw ushın JSON paydalanasız. Annotaciya qosqıńız keletuǵın konfiguraciya faylları, onı JSON analizshisine bermeste aldın, ózińizge unaytuǵın barlıq kommentariyalardı kirgiziń.»

MongoDB hújjetke baǵdarlanǵan maǵlıwmatlar bazası ushın JSON sıyaqlı maǵlıwmatlardı paydalanadı.

PostgreSQL hám MySQL sıyaqlı ayırım relyaciyalıq maǵlıwmatlar bazaları jergilikli JSON maǵlıwmatlar tiplerine qollawdı qostı. Bul baǵdarlamashılarǵa JSON maǵlıwmatların basqa maǵlıwmatlar formatına túrlendiriwsiz tikkeley relyaciyalıq maǵlıwmatlar bazasında saqlawǵa imkaniyat beredi.

## Derekler