JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它是基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的子集。 JSON採用完全獨立於語言的文字格式,但也使用了類似C語言家族的習慣(包括C, C , C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的資料交換語言。
JSON建構於兩種結構:
1、「名稱/值」對的集合(A collection of name/value pairs)。在不同的語言中,它被理解為物件(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或關聯數組(associative array)。
2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。
這些都是常見的資料結構。事實上大部分現代電腦語言都以某種形式支援它們。這使得一種資料格式在同樣基於這些結構的程式語言之間交換成為可能。
JSON有以下這些形式:
•物件是一個無序的「『名稱/值'對」集合。一個物件以「{」(左括號)開始,「}」(右括號)結束。每個「名稱」後面跟著一個「:」(冒號);「『名稱/值' 對」之間使用「,」(逗號)分隔。
•陣列是值(value)的有序集合。一個陣列以「[」(左中括號)開始,「]」(右中括號)結束。值之間使用“,”(逗號)分隔。
•值(value)可以是雙引號括起來的字串(string)、數值(number)、true、false、 null、物件(object)或是陣列(array)。這些結構可以嵌套。
•字串(string)是由雙引號包圍的任意數量Unicode字元的集合,使用反斜線轉義。一個字元(character)即一個單獨的字串(character string)。
•字串(string)與C或Java的字串非常相似。
•數值(number)也與C或Java的數值非常相似。除去未曾使用的八進位與十六進位格式。除去一些編碼細節。
•空白可以加入任何符號之間。 以下描述了完整的語言。
JSON舉例(javascript使用json):