我在最新版本的Mozilla上运行Javascript函数,它接收一个我想要转换为JSON对象的字符串。转换似乎失败了。
在Java函数中在服务器端生成字符串:
result = "[{ \"userID\": 1 \"firstName\":\"John\" \"lastName\":\"Sheridan\" }{ \"userID\": 2 \"firstName\":\"Michael\" \"lastName\":\"Geribaldi\" }]";
(请注意,我正在尝试返回列表的值数组。)
客户端的代码是如下所示的ajax回调:
var successFunc = function(data, textStatus, jqXHR)
{
alert("Data: "+data);
var obj = $.parseJSON(data);
alert("Object: "+obj);
}
显然,数据将返回到回调并以字符串形式显示,但JSON解析器失败,因为第二个警报未能显示。我确信我的字符串有问题,但我很难搞清楚是什么。调试器没有告诉我任何事情,我只是看到一个无声的失败。
我还尝试使用JSON.parser()函数。我看到了同样的事情。我在某个地方犯了一个错误。有人能告诉我在哪里吗?
答案 0 :(得分:2)
您的json无效,您缺少逗号
为了解析你的json应该是这样的
[
{ "userID": 1, "firstName":"John", "lastName":"Sheridan" },
{ "userID": 2, "firstName":"Michael", "lastName":"Geribaldi" }
]
答案 1 :(得分:1)
JSON是一种格式,其中key:value
对的数据由,
分隔,密钥和值包含在double quotes
中,其中对象包含在{}
括号和数组中被[]
括起来希望你的错误在你的json缺乏的地方。
"[{
\"userID\": 1 ,
\"firstName\":\"John\",
\"lastName\":\"Sheridan\",
},
{
\"userID\": 2 ,
\"firstName\":\"Michael\",
\"lastName\":\"Geribaldi\" }]"