json logo

JSON'a Giriş


العربية Български 中文 Český Dansk Nederlands English Esperanto Français Deutsch Ελληνικά עברית Magyar Indonesia
Italiano 日本 한국어 فارسی Polski Português Română Русский Српско-хрватски Slovenščina Español Svenska Türkçe Tiếng Việt

ECMA-404 The JSON Data Interchange Standard.

json
    element

value
    object
    array
    string
    number
    "true"
    "false"
    "null"

object
    '{' ws '}'
    '{' members '}'

members
    member
    member ',' members

member
    ws string ws ':' element

array
    '[' ws ']'
    '[' elements ']'

elements
    element
    element ',' elements

element
    ws value ws

string
    '"' characters '"'
characters
    ""
    character characters
character
    '0020' . '10ffff' - '"' - '\'
    '\' escape
escape
    '"'
    '\'
    '/'
    'b'
    'n'
    'r'
    't'
    'u' hex hex hex hex

hex
    digit
    'A' . 'F'
    'a' . 'f'

number
    int frac exp

int
    digit
    onenine digits
    '-' digit
    '-' onenine digits

digits
    digit
    digit digits

digit
    '0'
    onenine

onenine
    '1' . '9'

frac
    ""
    '.' digits

exp
    ""
    'E' sign digits
    'e' sign digits

sign
    ""
    '+'
    '-'

ws
    ""
    '0009' ws
    '000a' ws
    '000d' ws
    '0020' ws

JSON (JavaScript Object Notation) hafif bir veri değişim formatıdır. İnsanların okuyup yazabilmesi kolaydır. Makinaların tarayıp, yaratabilmesi kolaydır. JavaScript Programlama Dili, Standard ECMA-262 3.Yayın - Aralık 1999, versiyonunun alt kümesi üzerine kurulmuştur. JSON, tamamen programlama dillerinden bağımsız, ancak C türevi dillere (C, C++, C#, Java, JavaScript, Perl, Python ve daha pek çoğu), yazılış bakımından çok benzeyen bir veri tanımlama formatıdır. Bu özellikler, JSON'u veri değiştokuşu için ideal hale getirmektedir.

JSON iki yapı üzerine kurulmuştur:

Bu yapılar, evrensel veri yapılarıdır. Bütün modern programlama dilleri, bu yapıları, bir şekilde içlerinde barındırmaktadırlar. Programla dilleri arasında veri değişimi için kullanılan bir formatın, bu yapıları kullanarak oluşturulması da oldukça anlamlıdır.

Bu yapılar JSON'da, aşağdaki şekillerde gösterilirler:

Bir nesne (object), isim/değer çiftlerinin sırasız birleşiminden oluşur. Nesne tanımlaması, { (kıvırcık parantez aç) ile başlar ve } (kıvırcık parantez kapa) ile biter. Her "isim"den sonra : (iki nokta üstüste) gelir ve isim/değer çiftleri , (virgül) ile ayrılır.

Diziler, sıralı değer listesidir. Bir dizi [ (köşeli parantez aç) ile başlar ve ] (köşeli parantez kapa) ile biter. Değerler , (virgül) ile ayrılır.

Bir değer, çift tırnak içinde bir string (yazı), sayı, true (doğru), false (yanlış), null (boş değer), object (nesne) veya array (dizi) olabilir. Bu yapılar bir birlerinin içinde tekrar edebilirler.

Bir string (yazı), çift tırnak içinde, ters-bölü kodlarına da izin veren, sıfır veya daha fazla "Unicode" karakterin birleşiminden oluşur. Bir karakter, string (yazı) tipindeki tek karakter olarak gösterilebilir. String (yazı) tipi, C veya Java dilindeki "string" tipine çok benzemektedir.

Bir sayı C veya Java dilindeki sayılara çok benzer, ancak sekizli (octal) ve onaltılı (hexadecimal) rakamlar kullanılmamaktadır.

Tanımlamaların arasına, istendiği gibi beyaz boşluk (Whitespace) konulabilir. Verinin diline (Encoding) bağlı olarak, notasyonda bazı farklılıklar olabilir.