我在解析合法和经验证的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 \"}]"};
tags
的值为null
请注意,这两个值都在JSONLint上验证。
答案 0 :(得分:1)
在你的第二个场景中,既然你已经将“标签”改为“标签”,你是否正在解析下面的JSON - 请注意reponse.tag中缺少的's'?
var tags = $.parseJSON(response.tag);
答案 1 :(得分:0)
你的第二个例子开始了:
{"tag":
这应该是
{"tags":