0

我在解析合法和经过验证的 JSON 对象时遇到问题。

这个运行正常

var response = {"tags":"[{\"value\": 2,\"label\": \"Dubstep\"},{\"value\": 3,\"label\": \"BoysIIMen\"},{\"value\": 4,\"label\":\"Sylenth1\"}]"};

var tags = $.parseJSON(response.tags);
console.log(tags);

它在控制台上打印出来Array[3]

但是当我运行时,我将值更改var response为这个

 var response = {"tag":"[{\"id\":2,\"name\":\"Dubstep\",\"description\":\"Dub wob wob\"},{\"id\":3,\"name\":\"BoysIIMen\",\"description\":\"A 1990s Boy Band\"},{\"id\":4,\"name\":\"Sylenth1\",\"description\":\"A VST Plugin for FLStudio \"}]"};

请注意,这两个值tagsnull在 JSONLint 上进行了验证。

4

2 回答 2

1

在您的第二种情况下,由于您已将“tags”更改为“tag”,您是否按如下方式解析 JSON - 请注意 reponse.tag 中缺少的“s”?

var tags = $.parseJSON(response.tag);
于 2013-01-30T11:28:23.113 回答
0

您的第二个示例开始:

{"tag":

这应该是

{"tags":
于 2013-01-30T11:27:29.687 回答