JS解析json数据(怎么把json字符串转化为数

JS解析json数据(怎么把json字符串转化为数,第1张

如果希望使用原生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包版本太低。

post的话是没有办法直接获取得

如果是同一个页面,考虑直接用js函数获取,不提交

如果是不同页面,只能通过ajax变成get方式

get的话,一个正则.二是split,具体如下

办法一: 正则

function getAction(name) {

var reg = new RegExp("(^|&)" + name

+ "=([^&]*)(&|$)", "i")

var r =

window.location.search.substr(1).match(reg)

if (r != null) return

unescape(r[2])return null

}

办法二: split

function getAction() {

var url = location.search//获取url中"?"符后的字串

var theRequest = new Object()

if (url.indexOf("?") != -1) {

var str = url.substr(1)

 strs = str.split("&")

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

theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1])

 }

 }

return theRequest

}

根据返回的字符串可以看出是多个json拼接成的js数组的形式。

如果返回的只是字符串须现将字符串转成js对象。

使用Jquery的$.each()方法循环js数组取出每一个json对象的数据。

str = '[{"key":"value","keys":[{"key1":"value1","key2":"value2"},{"key1":"value3","key2":"value4"}],"obj":{"id":1,"msg":"success"}}]'

str_json = eval("(" + str + ")")//将字符串转换成js对象

$.each(str_json,fucntion(a,b){

alert(a)//d出数组的key

alert(b.id)//d出要取出的数据

})


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10820937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存