JS解析json数据(如何将json字符串转化为数

JavaScript022

JS解析json数据(如何将json字符串转化为数,第1张

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>New Document </TITLE>

<SCRIPT LANGUAGE="JavaScript">

var t="{'firstName': 'cyra', 'lastName': 'richardson', 'address': { 'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ] }"

var jsonobj=eval('('+t+')')

alert(jsonobj.firstName)

alert(jsonobj.lastName)

var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] "

var myobj=eval(t2)

for(var i=0i<myobj.lengthi++){

alert(myobj[i].name)

alert(myobj[i].age)

}

var t3="[['<a href=# onclick=openLink(14113295100,社旗县国税局桥头税务所,14113295100,d6d223892dc94f5bb501d4408a68333d,swjg_dm)>14113295100</a>','社旗县国税局桥头税务所','社旗县城郊乡长江路西段']]"

//通过eval() 函数可以将JSON字符串转化为对象

var obj = eval(t3)

for(var i=0i<obj.lengthi++){

for(var j=0j<obj[i].lengthj++){

alert(obj[i][j])

}

}

/*

//stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。

var jsonText = JSON.stringify(obj)

alert(jsonText)

//如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受 JSON 文本。所以是更安全的。

var myObject = JSON.parse(myJSONtext, filter)

//可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。如:

//如

myData = JSON.parse(text, function (key, value) {

return key.indexOf('date') >= 0 ? new Date(value) : value })

//stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。

var myJSONText = JSON.stringifier(myObject)

*/

</SCRIPT>

</HEAD>

<BODY>

</BODY>

</HTML>

如果希望使用原生JS实现将一个JSON字符串转换成JSON对象,可以使用自带的eval()函数,如: var obj = eval('(' + JsonStr + ')')

原生的函数使用起来不方便,也不容易记住。可以引入json.js外部文件,之后可以对JSON字符串进行多样化处理。如:var obj = str.parseJSON()或者

var obj = JSON.parse(str)

还可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。如:var last=obj.toJSONString()或者var last=JSON.stringify(obj)

新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。