链接原文转自:http://www.w3cschool.cn/json/xumd1piw.html
http://www.cnblogs.com/zoumiaomiao/p/4909539.html
1、json数据:
JavaScript Object Notation(JavaScript 对象表示法);json是存储和交换文本信息的语法(类似于XML),是一种轻量级的文本数据交换格式,比XML更快更小更易解析。json数据的结构,json有两种结构:对象和数组
2、json数据的写法与原生的对象写法的区别:
对象字面量一般写法是:
var aa ={name:"zoumm",job :"it",age :25};
json对象写法:
{"name":"zoumm","job":"it","age":23,"school":{"name":"大学名",“add”:"中国"}}
因此:json对象不用定义变量,末尾不用写分号,切所有的属性名必须加双引号;
一般数组是这样定义的:
var aa = [23,"zoumm"];
json数组是这样定义的
[23,"zoumm"]
他们的区别是,json数组不用定义变量,末尾不用写分号;
3、为什么json数据要解析:json数据在传输的过程中是以文本格式存在的,即以字符串的形式存在,然而我们的js中操作的却是对象,因此我们必须将json数据解析成对象的操作,然后才能用对象对数据进行访问。
数据格式:
Json字符串:var json_str = ‘{"name":"xiao","age":12}';//单引号
Josn对象:var obj = {"name":"xiao","age":12};
JS对象:Object {name: "xiao", age: 12}
因此:要将Json字符串——>JS对象
4、json数据的解析:
a、JSON提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。
b、用eval()方法转换到Object,再obj.toJSONString()
function myEval() {
var str = '{ "name": "Violet", "occupation": "character" }';
var obj = eval('(' + str + ')');
alert(obj.toJSONString());
}
3、或者用parseJSON()方法,再obj.toJSONString()
注意:eval()是JS原生函数,使用该形式:eval(‘('+‘{name:"xiao",age:12}'+')'),并不安全,无法保证类型转换为JS对象;不建议使用
例子:
5、JS对象——>Json字符串: