json logo

Kio estas JSON?


العربية Български 中文 Č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 (objektonotacio de JavaScript, angle JavaScript Object Notation) estas simpla datum-interŝanĝa formato. Homoj povas facile legi kaj skribi ĝin. Maŝinoj povas facile analizi ĝian sintakson kaj generi ĝin. Ĝi baziĝas sur subaro de la programlingvo JavaScript laŭ la 3-a eldono de la normo ECMA-262, decembro 1999. JSON estas tute lingve sendpenda tekstoformato, sed ĝi uzas konvenciojn konatajn de programistoj de lingvoj en la C-familio, ekz. C, C++, C#, Java, JavaScript, Perl, Python kaj multaj aliaj. Tiuj kvalitoj faras el JSON idealan datum-interŝanĝan lingvon.

JSON havas du bazajn strukturojn:

Tiuj estas universalaj datum-strukturoj. Efektive ĉiuj modernaj programlingvoj subtenas ilin en ia formo. Estas logike, ke ankaŭ datum-formato, kiun programlingvoj povu interŝanĝi, baziĝu sur tiuj strukturoj.

En JSON ili prenas la jenajn formojn:

Objekto (angle object) estas senorda aro da paroj. Ĉiu paro kunigas nomon kaj valoron. Objekto komenciĝas per { (malferma kuniga krampo) kaj finiĝas per } (ferma kuniga krampo). Post ĉiuj nomo aperas : (dupunkto). Se estas pluraj nom-kaj-valoraj paroj, oni apartigas ilin per , (komo).

Listo (angle array) estas orda kolekto da valoroj. Listo komenciĝas per [ (malferma rekta krampo) kaj finiĝas per ] (ferma rekta krampo). Oni apartigas la valorojn per , (komo).

Valoro (angle value) povas esti unu el la sekvaj: teksto inter dustrekaj citiloj, nombro, true, false, null, objektolisto. Oni povas ingi tiujn strukturojn unu en la alian.

Teksto estas ĉeno da nul aŭ pliaj Unikodaj signoj, enmetitaj inter dustrekaj citiloj, uzante eventualan deklivon kiel eskapsignon. Por reprezenti unusolan signon oni simple uzas unusignan tekston. Teksto multe similas la ĉenojn de C aŭ Java.

Nombro multe similas la nombrojn de C aŭ Java, sed oni ne uzas la okuman nek la deksesuman nombrosistemojn.

Oni rajtas enmeti blankan spacon inter ĉiuj JSON-elementoj. Krom kelkaj detaloj pri kodoprezento, tio plene priskribas la lingvon.