Kontentke ótiw

JSON

Wikipedia, erkin enciklopediya

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ı[redaktorlaw | derekti jańalaw]

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.[1][2] ECMA-404 birinshi (2013 j.) basılımı aytılıwǵa baylanıslı emes.[3] 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ı”[4] Krokford 2011-jılı: “Bunı qalay aytatuǵınıńız tuwralı kóplegen dawlar bar, biraq maǵan báribir.”

Standartlar[redaktorlaw | derekti jańalaw]

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.[3] 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.[1] 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ı.[5]

Tariyxı[redaktorlaw | derekti jańalaw]

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ı.[6]

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[7] veb saytı 2001-jılı iske qosıldı. 2005 jıl dekabrde Yahoo! JSON ishinde ayırım veb-xızmetlerin usına basladı.[8]

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[9]) 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[redaktorlaw | derekti jańalaw]

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[redaktorlaw | derekti jańalaw]

Krokford dáslebinde JSON JavaScript hám ECMAScript-tiń qatań ishki toplamı dep málimlegeni menen,[10] 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ı.[11][12] 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ı.[12][13]

Qollanılıwı[redaktorlaw | derekti jańalaw]

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ń.”[14]

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[redaktorlaw | derekti jańalaw]

  1. 1,0 1,1 „ISO/IEC 21778:2017“. ISO. Qaraldı: 29-iyul 2019-jıl. Silteme kórsetiwdegi qátelik: Invalid <ref> tag; name ":0" defined multiple times with different content
  2. „ECMA-404: The JSON Data Interchange Syntax“. Ecma International (dekabr 2017). 27-oktyabr 2019-jılda túp nusqadan arxivlendi. Qaraldı: 29-aprel 2024-jıl.
  3. 3,0 3,1 „ECMA-404: The JSON Data Interchange Format“ (en). Ecma International (oktyabr 2013). 1-noyabr 2013-jılda túp nusqadan arxivlendi. Qaraldı: 20-noyabr 2023-jıl. Silteme kórsetiwdegi qátelik: Invalid <ref> tag; name "ecma2013" defined multiple times with different content
  4. UNIX and Linux System Administration Handbook. 
  5. Bray. „JSON Redux AKA RFC7159“. Ongoing. Qaraldı: 16-mart 2014-jıl.
  6. „Unofficial Java History“. Edu4Java (26-may 2014-jıl). — „In 1996, Macromedia launches Flash technology which occupies the space left by Java and ActiveX, becoming the de facto standard for animation on the client side.“. 26-may 2014-jılda túp nusqadan arxivlendi. Qaraldı: 30-avgust 2019-jıl.
  7. „JSON“. json.org.
  8. Yahoo!. „Using JSON with Yahoo! Web services“. 11-oktyabr 2007-jılda túp nusqadan arxivlendi. Qaraldı: 3-iyul 2009-jıl.
  9. Crockford. „Introducing JSON“. json.org (28-may 2009-jıl). — „It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999.“. Qaraldı: 3-iyul 2009-jıl.
  10. Douglas Crockford. „JSON in JavaScript“ (10-iyul 2016-jıl). — „JSON is a subset of the object literal notation of JavaScript.“. 10-iyul 2016-jılda túp nusqadan arxivlendi. Qaraldı: 13-avgust 2016-jıl.
  11. Holm, Magnus. „JSON: The JavaScript subset that isn't“. The timeless repository (15-may 2011-jıl). 13-may 2012-jılda túp nusqadan arxivlendi. Qaraldı: 23-sentyabr 2016-jıl.
  12. 12,0 12,1 „Subsume JSON: Proposal to make all JSON text valid ECMA-262“. Ecma TC39 (23-avgust 2019-jıl). Qaraldı: 27-avgust 2019-jıl. Silteme kórsetiwdegi qátelik: Invalid <ref> tag; name "ECMATC39" defined multiple times with different content
  13. „Advance to Stage 4 - tc39/proposal-json-superset“. GitHub (22-may 2018-jıl).
  14. Crockford. „Comments in JSON“ (30-aprel 2012-jıl). — „I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability. I know that the lack of comments makes some people sad, but it shouldn't. Suppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser.“. 4-iyul 2015-jılda túp nusqadan arxivlendi. Qaraldı: 30-avgust 2019-jıl.