Javascript 在Jquery中读取JSON结果的值

Javascript 在Jquery中读取JSON结果的值,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,下面是我通过Ajax调用的WebMethod输出: var item=""[{\"Column1\":\"false\"}]"" 总是有一行输出,即true或false,我想获得Column1的值,我已经尝试了Jquery.ParseJson(item),但它给出了非法的错误标记,请帮助我如何读取该值。请检查倒逗号,这是我的web方法的确切结果,此结果和格式是场景的必要条件。谢谢。在使用循环时,它会给出错误: 如果我正确理解您的问题,我认为字符串周围的额外引号是一个问题,这是无效的语法 这项

下面是我通过Ajax调用的WebMethod输出:

 var item=""[{\"Column1\":\"false\"}]""
总是有一行输出,即
true
false
,我想获得
Column1
的值,我已经尝试了
Jquery.ParseJson(item)
,但它给出了非法的错误标记,请帮助我如何读取该值。请检查倒逗号,这是我的
web方法的确切结果
,此结果和格式是场景的必要条件。谢谢。在使用循环时,它会给出错误:
如果我正确理解您的问题,我认为字符串周围的额外引号是一个问题,这是无效的语法

这项工作:

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

请看这里,我更喜欢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);
var item=“[{\“Column1\”:\“false\”}]”;
var parsed=JSON.parse(项目);
//如果不支持forEach:
for(var i=0;i

这是一个for循环。

不确定您的服务输出,但我认为您可以尝试以下方法:

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);

我知道上述解决方案并不完全适用于您的浏览器,下面是另一个备选解决方案,尽管我知道它可能不适合您的场景,但由于您的输出是
true
false
。而不是在服务器端使用
jsonvert
,只需将对象数组返回到客户端,然后像这样读取值

var tempo=item[0].Column1;

您的浏览器似乎没有
forEach
。如果您想支持较旧的浏览器,您必须使用(;;)
或类似下划线的内容。我会更新答案。@Bjron…我使用的Chrome版本为33.0.1750.154。开发版mMy的Chrome版本为37.0.2062.124,我相信这是最新的稳定版本。我认为33应该是每个人的,它已经存在了一段时间,但我不确定。您可能只想使用for循环或类似下划线/lodash的库。在opera和firefox上,它给出了未定义的错误不是一个函数。您是否使用
for
循环而不是
forEach
?在str中,我有
“var item=[{\Column1\:\false\}]”
…但它给出了
项[0]。Column1