我有一个名为“result”的变量,
var result;
结果值等于以下值,请假设只是一个字符串:)
---------结果值-----------
for (;;);{
"send":1,
"payload":{
"config":{
"website":"",
"title":"welcome to site",
"website-module":1313508674538,
"manufatureid":"id.249530475080015",
"tableid":"id.272772962740259",
"adminid":100002741928612,
"offline":null,
"adminemail":"admin@website.com",
"adminame":"George",
"tags":"web:design:template",
"source":"source:design:web",
"sitelog":[],
"errorlog":0,
"RespondActionlog":0,
"map":null
},
"imgupload":""
},
"criticalerror":[0],
"report":true
}
---------结果值------------
从这个值,我想用经典的Javascript提取tableid,它是“id.272772962740259”。
如何解析代码,请让我知道如何使用简单的javascript,请不要使用Jquery,我只需要简单的javascript。
答案 0 :(得分:2)
您可以简单地评估变量的值以获取值。但请注意,您当前的值无效JSON;值的开头for(;;);
使格式无效。删除它,你可以这样做:
var object = eval('(' + resultMinusThatForLoop + ')');
alert(object.payload.config.tableid);
答案 1 :(得分:1)
如果该数据是字符串,则使用JSON解析对其进行解析。以下应该得到你想要的值
JSON.parse(result).payload.config.tableid; // "id.272772962740259"
编辑:但是,正如Tejs所说,for(;;)
使字符串无效并阻止其被解析。如果你可以删除它,那么。
答案 2 :(得分:0)
您需要删除空for
循环,然后解析字符串。不要使用eval
;大多数现代浏览器都提供内置的JSON解析工具,但如果您没有,则可以使用json2.js
。假设您将解析JSON的结果分配给result
,您应该能够使用result.payload.config.tableid
获取该值。
你应该阅读一篇很好的JS参考资料。 JavaScript: The Good Parts或Eloquent JavaScript将是一个不错的选择。
答案 3 :(得分:0)
如果结果是javascript对象而不是字符串,则可以使用'result.payload.config.tableid'。
如果不是,您如何获得AJAX结果?你是直接使用XmlHttpRequest吗?大多数库都会给你一个javascript对象,你可能会丢失一个标志或者没有用正确的内容类型发回响应。
如果它是一个字符串并且您想手动解析它,则应该使用JSON解析器。较新的浏览器内置了一个window.JSON,但也有open source code用于解析它。
var obj = JSON.parse(result);
alert('tableid is ' + obj.payload.config.tableid);