陈颂光
全栈工程师,能够独立开发从解释器到网站和桌面/移动端应用的各类软件。
关注我的 GitHub

JSON概览

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。很多现在与服务器交互的api者基于JSON。

JSON建构于两种可嵌套的结构:

  • 对象,即“名称/值”对的集合。不同的语言中,它被理解为对象、纪录、结构、字典、哈希表、有键列表或者关联数组。
  • 值的有序列表。在大部分语言中,它被理解为数组或向量。

JSON中的值表示方法如下:

  • 空值,用null表示
  • 布尔值,用truefalse表示
  • 数值,其表示首先是可选的负号,然后是十进制的整数部分(不要多余的前导零),接着是可选的由.开始后跟一个或多个十进制数字的小数部分,最后是可选的由eE开始后跟可选的正负号再后跟一个或多个十进制数字的指数部分
  • 字符串,表示为用"包围的字符序列,其中可用"\和控制字符外的任何Unicode字符,也可用Java风格的转义序列\"\\\/\b\f\n\r\t\u 四个十六进制数字
  • 对象,其表示以{开始,以}结束,其中用,分隔各个键值对,每个键值对由键的表示开始后跟一个:然后是值的表示。
  • 一个数组以[开始,以]结束,其中各个值的表示之间使用,分隔。

空白可以加入到任何符号之间。以下描述了完整的语言。

object
    {}
    { members }
members
    pair
    pair , members
pair
    string : value
array
    []
    [ elements ]
elements
    value
    value , elements
value
    string
    number
    object
    array
    true
    false
    null

string
    ""
    " chars "
chars
    char
    char chars
char
    any-Unicode-character-
        except-"-or-\-or-
        control-character
    \"
    \\
    \/
    \b
    \f
    \n
    \r
    \t
    \u four-hex-digits

number
    int
    int frac
    int exp
    int frac exp
int
    digit
    digit1-9 digits
    - digit
    - digit1-9 digits
frac
    . digits
exp
    e digits
digits
    digit
    digit digits
e
    e
    e+
    e-
    E
    E+
    E-

http://www.json.org列出了一些现成的JSON解释器。

关键词 json