json
=
{
contry:{
area:{
man:"12万",
women:"10万"
}
}
}
//方式一:使用eval解析
var
obj
=
eval(json)
alert(obj.constructor)
alert(obj.contry.area.women)
//方式二:使用Funtion函数
var
strJSON
=
"{name:'json
name'}"//得到的JSON
var
obj
=
new
Function("return"
+
strJSON)()//转换后的JSON对象
alert(obj.name)//json
name
alert(obj.constructor)
//复杂一点的json数组数据的解析
var
value1
=
[{"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"},
{"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"},
{"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}]
var
obj1
=
eval(value1)
alert(obj1[0].c01)
//复杂一点的json的另一种形式
var
value2
=
{"list":[
{"password":"1230","username":"coolcooldool"},
{"password":"thisis2","username":"okokok"}],
"array":[{"password":"1230","username":"coolcooldool"},{"password":"thisis2","username":"okokok"}]}
var
obj2
=
eval(value2)
alert(obj2.list[0].password)
==========================================js 中读取JSON的方法探讨
js读取JSON的方法我接触到的有两种:
方法一:函数构造定义法返回
var strJSON = "{name:'json name'}"//得到的JSON
var obj = new Function("return" + strJSON)()//转换后的JSON对象
alert(obj.name)//json name
方法二:js中著名的eval函数
var strJSON = "{name:'json name'}"//得到的JSON
var obj = eval( "(" + strJSON + ")" )//转换后的JSON对象
alert(obj.name)//json name
第二种方法需要注意的是,对象表达式{'name':'json name'}必须用“()”扩住,否则
var strJSON = "{name:'json name'}"
var obj = eval(strJSON)
alert(obj.constructor)//String 构造函数
alert(obj.name)//undefine
必须把对象表达式扩起来eval执行才能生成一个匿名对象!
看这样一段函数定义的代码就明白了function json_to_format_string(obj,deep){ var html = "" var blank_string = "" for (var i = 0i <deepi++) { blank_string += " " } for(var name in obj){ if (typeof(obj[name])=="object") { html += blank_string + name +": "+ "" html += json_to_format_string(obj[name],deep+1) }else{ html += blank_string + name +": "+ obj[name]+"
" } } return html}