gpt4 book ai didi

jquery - 迭代 JSON 列表会产生 "Error: Syntax error, unrecognized expression"

转载 作者:行者123 更新时间:2023-12-01 01:07:16 28 4
gpt4 key购买 nike

我有一个 AJAX 调用,它调用 Controller 。该 Controller 返回以下 JSON:

{"officeProducts":"[{\"Id\":96,\"MyProperty\":null,\"Enabled\":true,\"Envelope\":{\"Id\":1,\"Quality\":\"God\",\"PaperSize\":\"A4\",\"Type\":\"Window\"}},{\"Id\":169,\"MyProperty\":null,\"Enabled\":true,\"Envelope\":{\"Id\":1,\"Quality\":\"God\",\"PaperSize\":\"A4\",\"Type\":\"Window\"}},{\"Id\":174,\"MyProperty\":null,\"Enabled\":true,\"Envelope\":{\"Id\":1,\"Quality\":\"God\",\"PaperSize\":\"A4\",\"Type\":\"Window\"}},{\"Id\":175,\"MyProperty\":null,\"Enabled\":true,\"Envelope\":{\"Id\":1,\"Quality\":\"God\",\"PaperSize\":\"A4\",\"Type\":\"Window\"}}]"}

现在我想迭代该列表。所以我基本上想迭代 officeProducts

我有以下代码,显然我做错了什么,因为我得到:

错误:

Error: Syntax error, unrecognized expression: [{"Id":96,"MyProperty":null,"Enabled":true,"Envelope":{"Id":1,"Quality":"God","PaperSize":"A4","Type":"Window"}},{"Id":169,"MyProperty":null,"Enabled":true,"Envelope":{"Id":1,"Quality":"God","PaperSize":"A4","Type":"Window"}},{"Id":174,"MyProperty":null,"Enabled":true,"Envelope":{"Id":1,"Quality":"God","PaperSize":"A4","Type":"Window"}},{"Id":175,"MyProperty":null,"Enabled":true,"Envelope":{"Id":1,"Quality":"God","PaperSize":"A4","Type":"Window"}}]

我的 AJAX 调用:

self.updateOfficeProducts = function() {
$.ajax({
url: '/SingleLetter/GetOfficeProducts',
type: 'POST',
data: {
'country': self.countryId
},
dataType: 'json',
success: function (data) {
console.log(data.officeProducts);

$(data.officeProducts).each(function (index, ele) {
alert(ele.Id);
});
}
});
};

所以我希望迭代 4 个不同的对象,我可以在其中说出诸如 ele.Idele.Enabled 之类的内容。相反,我得到了语法错误。

我做错了什么? :-) 显然是一些语法问题。

最佳答案

使用JSON.parse -

success: function (data) {
data = JSON.parse(data);
$(data.officeProducts).each(function (index, ele) {
alert(ele.Id);
});
...

编辑

另一件事 - 我不确定 .NET,但您返回的响应不是 ajax 预期的形式。该字符串未正确进行 json 编码。

您必须在 [] 之前和之后删除 ",因此字符串将是 -

var a = '{"officeProducts": [{\"Id\":96,\"MyProperty\":null,\"Enabled\":true,\"Envelope\":{\"Id\":1,\"Quality\":\"God\",\"PaperSize\":\"A4\",\"Type\":\"Window\"}}] }';
// ^here and here^

JSFiddle

希望有帮助。

关于jquery - 迭代 JSON 列表会产生 "Error: Syntax error, unrecognized expression",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24424959/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com