Json对象的格式
某天聊天时听到有人说,json必须以 { 开头,以 }结尾,顿时很无语。
 Json到底该是什么样子,官方网站上说的很明白.
 另外附上一个很不错的在线验证及格式化Json的网站:Json.cn
 本文对Json的格式简单说下
Json简介
JSON是 JavaScript Object Notation 的缩写,它是一种数据交换格式,2002年由道格拉斯·克罗克福特(Douglas Crockford)发明的。
 在它之前,大家都用XML来交换数据,XML是纯文本格式,本身不难,但是加上 DTD、XSD、XSLT 等一堆规范后就相当复杂了。
JavaScript中的对象
既然JSON是JavaScript Object Notation,我们就看看JavaScript中都有什么对象。
 JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成, 一个普通的js对象用一个{...}表示,键值对以key : value形式声明。
 除此之外还有 number、string、boolean等对象,可以通过 typeof obj来获取对象的类型,如下:
// 普通对象
var obj = {
    name   : "小明",
    gender : "男",
    age    : 28
};
// 空对象
var o = null;
// 数组对象
var arr = [1, 2, 3];
// 数字对象
var num1 = 1;
var num2 = 123.456;
// 字符串
var str = "abcde";
// 布尔
var bool = true;
typeof obj; // object
typeof o;   // object
typeof arr; // object
typeof num1; // number
typeof num2; // number
typeof str;  // string
typeof bool; // boolean上面例子中,虽然{}, null, []都是object,但是他们的形式不太一样。
Json中的对象
JSON中的对象来自于JavaScript中,总共以下这几种数据类型:
| number | js中的number | | boolean | js中的boolean, 即true或false | | string | js中的string | | null | js中的null | | array | js中的的Array, 即[]形式的对象 | | object | js中的普通对象, 即{ ... }形式的对象. |
另外JSON还规定了字符集必须用UTF-8, 字符串必须用双引号"", 对象中的key也必须用双引号""
 所以,以下的json都是正确的:
null
"一个字符串"
3.14
[1, 2, 3, "asdf"]
{"name" : "Rose", "age": 18}注意:
- {"name" : "Rose", "age": 18}是普通对象,- 3.14也是一个对象,两者都是合法的json串
- null, 3.14这样不是合法的json串,要表示多个对象,必须放到普通对象中以键值对的形式出现
Json的格式
像上面的说的,Json的值有一定的格式,应该是下面图中的样子:
其中的string就是正常的字符串, number就是数字,如整数、小数、负数等;
其中的object应是下图描述的样子:
其中的array应是下图描述的样子:
