JSON笔记

虽然一直使用JSON,却没有认真的研究过JSON标准格式和相关定义;今天既然有空闲时间,就学习一下。并做下笔记。源地址:http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf

概述

JSON,以文本格式,在不同语言间进行结构化数据的传递和交换,源自于ECMAScript,但不依赖于任何语言。


JSON文本

1)符号
  • [ ] 中括号,主要用于表示数组
  • { } 花括号,主要用于表示key/value形式数据
  • : 冒号,常见于花括号中,表示key:value数据对
  • , 逗号,用于分隔每一个单独的数据对象
2)文字
  • true
  • false
  • null
3)空白字符
  • tab制表控制符
  • 回车
  • 换行
  • 空格 注解:空白字符,可以出现在其他字符之前或者之后,但不允许出现在其他字符之间(字符串除外);

JSON值

json允许的value有object, array, number, string, true, false, null

  • object – {key1:value1, key2:value2, key3:value3, …}
  • array – [A, B, C,…]
  • string – 注意控制字符和转义字符,做json转换之前,可能需要处理一下
  • number – 5,-3, 123E4, 35e6, 1234E3-2 (其实就是科学计数法)

    注意:无法表示无限数和NaN[详见](http://baike.baidu.com/view/409924.htm?fr=aladdin)

    NaN,是Not a Number的缩写。一种计算机用语。NaN 用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根。在Matlab中,NaN是一个预定义的常量,表示“不明确的数值结果”。还有Inf表示“无穷大”,pi表示常数π等等。 “`


JSON基本标准和需要注意的地方,就是上面这些了。 对了,还有一点,JSON的各类型值是可以互相嵌套包含的。

Comments