w3cschool对json的定义:
JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
Json有以下三种格式:
-
对象:{"name":"Michael","age":24, "key3": [ {"key31": "value31"}, {"key32": "value32"} ]}
-
数组:比如:[{"name":"Michael","age":24},{"name":"Tom","age":25}]
-
值:{"name":"Michael", "birthday":{"month":8,"day":26}},类似于对象嵌套对象.
上面的例子中,键都是字符串形式,值可以取任意类型。对于var p1={name:"Michael",age:24},我们称为对象自面量。两者是不同的,例子后面会讲到。
访问Json数据的两种方式
//例子var obj={name:"Michael",age:24};
obj.name;//方式1,和java语言中访问对象的属性是一样的。
alert(obj["name"]) //方式2,和js中数组的访问方式是一样的。
Json数据字符串化(序列化)
Json数据是跨平台的,在网络数据传输流程中,json是以文本,即字符串的形式传递的,各种语言对字符串的处理比较统一。而在JS是 以对象的形式。
JSON.stringify()将JSON对象转为JSON字符串(序列化);
JSON.parse()将JSON字符串转为JSON对象(反序列化)
例子:<script>
var obj={"name":"Michael","age":24};
var obj1=JSON.stringify(obj);//注意:json全大写
alert(obj);//弹出Object类型;说明是对象
alert(obj.name);//弹出属性值
alert(obj1);//弹出转化为字符后的;
var obj2 = JSON.parse(obj1);
alert(obj2)//转换后,弹出Object类型;说明已经转化成对象;
</script>
对象字面量例子
var obj={name:"Michael",age:24};
alert(obj);//弹出Object类型;说明是对象
alert(obj["name"])//alert(obj.name),但是obj[name]不行
var obj1=JSON.stringify(obj);//注意:json全大写
alert(obj1);//弹出转化为字符后的;{"name":"Michael","address":24};
</script>