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表示常数π等等。 “`