
可用方法
var obj = JSON.parse(str)
不可用方法
var obj = str.parseJSON()
var obj=eval("("+str+")")
返回的是个json,给你个思路,自己解决下,做不了在追们问:
1、需要用eval函数将返回的串转化成可用的strig串,eval(data),但是因为原串里面是以{}开始和结束的,会被认为是可执行方法,因此需要加上()包围起来,var jsonobj=eval("("+data+")"),然后再alert("ID:" + jsonobj.id + "\nName:" + jsonobj.time)就能正常显示了
2、获取的时候就直接表示返回的是json格式,用$.getJSON代替$.get,其他代码不变,也能正常获取。
采用Ajax的项目开发过程中,经常需要将JSON格式的字符串返回到前端,前端解析成JS对象(JSON )。ECMA-262(E3) 中没有将JSON概念写到标准中,但在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。
1,eval方式解析,恐怕这是最早的解析方式了。
function strToJson(str){
var json = eval('(' + str + ')')
return json
}
记得str两旁的小括号哦。
2,new Function形式,比较怪异哦。
function strToJson(str){
var json = (new Function("return " + str))()
return json
}
IE6/7中当字符串中含有换行(\n)时,new Function不能解析,但eval却可以。
3,使用全局的JSON对象。
function strToJson(str){
return JSON.parse(str)
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)