javascript 中的 json
一、 json即javascript对象表示法(javascript object notion),可读性强、非常适合数据传输。javascript中的对象字面量是json的基础。例如数组、字符串和数值等类型的字面量,如:
var anArray=[''hello','world'];//数组
var aString='hello world';//字符串
var aNumber=3.12;//数值
var anObject={};//对象
var aBoolean=true;//布尔值
var aRegExp=/\d/g;//正则表达式
json构建于这些对象字面量的概念之上,并支持复杂的数据结构,其中可以包括各种各样的常见数据类型:
Numbers 数值类型,包括整数(0、1、2)、浮点数(6.98)和实数(6.02e23)。
String 根据标准,字符串是由双引号括起来的Unicode字符串,其中可以使用反斜杠进行转义。
Boolean true值或者false值。
Array 一个有序的值的序列。
Object '键-值'对。
Null 一个空指针。
二、从javascript 字面量到json
json是javascript对象表示法的一个子集,使用了javascript对象表示法中所有相同的规则和基础数据类型。如下:
{
"customers":[
{
"name":"mr.li",
"sext":"man",
"age":30
},
{
"name":"mr.xiao",
"sext":"man",
"age":40
}
]
}
三、转换json代码
要将一个json字符串转换为一个javascript对象并具有可用格式,最简单的办法就是使用eval()函数进行转换。
为了便于使用eval()函数,需要将json代码块转换为一个javascript字符串:
var jsonString="{\"curstomers\":[{\"name\":\"mr.li\",\"sex\":\"man\",\"age\":30},{\"name\":\"mr.xiao\",\"sex\":\"man\",\"age\":30}]}";
var jsonObject=eval("("+jsonString+")");
经过eval()函数转换后,通过如下方式就可以访问到该json对象:
alert(jsonObject.curstomers[1].name);//"mr.xiao"
在firefox和IE中,包含一个全局JSON对象。具有两个方法:JSON.parse()方法和JSON.stringify()方法:
1、JSON.parse()语法如下: JSON.parse(text[,reviver]);
第一个参数text是一个包含了有效JSON结构的字符串。第二个参数reviver是一个可选的函数,用于筛选和转换分析结果:var jsonObj=JSON.parse(jsonString);
2、JSON.stringify()用于将对象转换成json:JSON.stringify(value[,replacer[,space]])
第一个参数value是一个想对之进行转换的基本数据或者对象。第二个参数replacer是一个可选的操作函数或者数组引用.第三个参数space用于定义该结构在每一层级上如何进行缩进:var obj={a:20,b:'hello',c:true};var string=JSON.stringify(obj);//{"a":20,"b":"hello","c":true}