在Jquery中读取JSON结果的值

时间:2014-10-05 18:21:06

标签: javascript jquery ajax json

以下是 WebMethod Ajax 调用的输出:

 var item=""[{\"Column1\":\"false\"}]""

总有一行输出,即truefalse,我想获得Column1的值,我已经尝试Jquery.ParseJson(item),但它给出了非法令牌错误,请帮助我如何阅读此值。请检查引号“,这是我web method的确切结果,这个结果和格式scenario是场景的必要条件。谢谢。在使用循环时它会给出错误: enter image description here

3 个答案:

答案 0 :(得分:2)

如果我理解你的问题,我认为你的字符串附加引号是一个问题,这是无效的语法。

这有效:

var item = "[{\"Column1\":\"false\"}]";
var parsed = JSON.parse(item);
parsed.forEach(function(row) {
    console.log(row.Column1);
});
console.log(parsed[0].Column1);

这是jsfiddle

请参阅此处关于jQuery.ParseJson vs JSON.parse,我更喜欢JSON.parse,但要么应该正常工作。

对于没有forEach的旧浏览器,请使用for循环或像下划线这样的库。

var item="[{\"Column1\":\"false\"}]";
var parsed = JSON.parse(item);
//if forEach is not supported:
for (var i = 0; i < parsed.length; i++) {
    console.log(parsed[i].Column1);
}
console.log(parsed[0].Column1);

这是for循环jsfiddle

答案 1 :(得分:0)

不确定您的服务输出,但我认为您可以尝试这样做:

str = 'var item=""[{\"Column1\":\"false\"}]""';
str = str.replace(/"/g, '');//remove quotes and slashes to make valid json
eval(str);//evaluate the string
console.log(item[0].Column1);

答案 2 :(得分:0)

我了解上述解决方案无法与您的浏览器完美配合,这是另一种替代解决方案,但我知道它可能不适合您的方案,但因为您的输出是truefalse。而不是在服务器端使用JsonConvert,只需将对象数组返回到客户端,并像这样读取值。

var tempo=item[0].Column1;