如果希望使用原生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包版本太低。
<!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>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)