![]() |
Въведение в JSON |
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) е опростен формат за обмяна на данни, удобен за работа както за хората, така и за компютрите. Той е базиран на едно подмножество на езика за програмиране JavaScript, Standard ECMA-262 3rd Edition - от декември 1999. JSON има текстов формат, напълно независим от реализацията на езика, но използва конвенции, които са познати на програмистите на C-подобни езици, включително C, C++, C#, Java, JavaScript, Perl, Python, и много други. Тези свойства правят JSON идеален език за обмяна на данни.
JSON се състои от две структури:
Това са универсални структури от данни, които се поддържат от всички модерни езици под една или друга форма. Може да се предположи, че формат, подходящ за обмяна на данни между езиците за програмиране, също ще бъде базиран на тези структури.
В JSON, това изглежда по следния начин:
Един обект е неподреден набор от двойки име/стойност. Обекта започва с { (лява фигурна скоба) и завършва с } (дясна фигурна скоба). След всяко име се поставя : (двуеточие), а двойките име/стойност се разделят със , (запетайка).
Един масив е подредена колекция от стойности. Масивът започва с [ (лява квадратна скоба) и завършва с ] (дясна квадратна скоба). Стойностите се разделят чрез , (запетайка).
Една стойност може да бъде стринг в двойни кавички, число, истина (true) или лъжа (false), null, обект или масив. Тези структури могат да бъдат вложени.
Един стринг е колекция от от нула или повече Unicode символи, обграден от двойни кавички, използвайки \ (обратна наклонена черта) като escape символ. Символът се представя чрез низ, съдържащ само един символ. Стрингът е подобен на тези в C или Java.
Числото много наподобява числото в C или Java, с изключение на това, че осмичният и шестнадесетичен формат не се използват.
Между двойките може да бъде вмъквано празно пространство (whitespace). С изключение на някои детайли относно кодирането на символите (encoding), това напълно описва езика.