如果希望使用原生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出要取出的数据
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)