以下 JSON 是我从服务器发回我的 jQuery 脚本的内容。
{"items": [
{ "id": "116", "first_name": "Sean", "last_name": "borsen" },
{ "id": "871", "first_name": "Sergio", "last_name": "spake" },
{ "id": "1337", "first_name": "SethTest", "last_name": "Test" }
],
"message": "success"
}
我打算用这个对象来建立一个html表格。但是,当我返回这种类型的 JSON 时,我会在 Chrome 中遇到以下两个错误之一:
Uncaught SyntaxError: Unexpected token ','
或者这个错误
Uncaught SyntaxError: Unexpected token ':'
这是我的 AJAX 邮政编码
$.ajax({
url: "ClientEmarGroup.aspx",
datatype: 'json',
data: eval('(' + d + ')'),
success: bindData
});
这是我在 bindData 函数中遇到错误的行:
bindData = function (data) {
var $d = eval("(" + data + ")");
此外,如果我像这样格式化我的 JSON 项目,我可以让脚本工作:
{"items": [
{ "id": "116", "name": "Sean borsen" },
{ "id": "871", "name": "Sergio spake" },
],
"message": "success"
}
但这不是我想要的。
所以我的问题是,我的 JSON 字符串格式有什么问题导致我无法将复杂对象发送回 jQuery?
如何格式化我的 JSON 以返回具有 2 个以上属性的项目数组?
最佳答案
您拼错了属性 dataType
,注意大写 T。
这会导致 jQuery 尝试自行找出数据类型,如果您没有提供具有正确内容类型的 JSON,它会尝试将其解析为其他内容,例如 XML。
如果 jQuery 设法正确猜测数据类型,它会在调用成功函数之前将字符串解析为对象,因此您不应该再次解析数据。
注意:如果需要解析JSON,需要注意eval
函数,应该使用$.parseJSON
方法。
关于javascript - 这个 JSON 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5764098/