解析 json 数据失败 - jquery



我不知道我在哪里错过了什么,但我有这个

var myvar = [{"id":1,"name":"name1"},{"id":2,"name":"name2"}];

我试过这个

$(jQuery.parseJSON(JSON.stringify(myvar))).each(function() {  
        console.log(this.name);
});

但是我的控制台中有一个错误:Syntax error, unrecognized expression [{"id":1,"name":"name1"},{"id":2,"name":"name2"]

我错过了一些东西,但我不知道是什么?

编辑:实际上,当我在控制台中复制粘贴myvar并运行解析时,它可以工作吗?但是,当我刷新页面并检索myvar时:console.log(myvar),我得到[{"id":1,"name":"name1"},{"id":2,"name":"name2"}],Chrome的控制台通常不会告诉它是一个对象

你没有关闭对象。

var myvar = [{"id":1,"name":"name1"},{"id":2,"name":"name2"}];

末尾缺少一个 }

var myvar = [{"id":1,"name":"name1"},{"id":2,"name":"name2"}];

这很奇怪;我在尝试您的代码时也遇到错误。不过看起来完全没问题。

你为什么不试试这个:

jQuery(myvar).each(function () {
    console.log(this.name);
});

此输出

name1
name2

在我的控制台中。这似乎是您的解决方案,因为您已经将对象转换为字符串并返回对象(数组)。

这是

正确的语法:

$(jQuery.parseJSON(myvar)).each(function() {  
    console.log(this.name);
});

(实际上,当我在控制台中复制粘贴myvar并运行解析时,它可以工作。但是,当我刷新页面并检索myvar时:console.log(myvar),我得到[{"id":1,"name":"name1"},{"id":2,"name":"name2"}],Chrome的控制台通常不会告诉它是一个对象)

最新更新