【问题标题】:Problems on Both Parsing Legal JSON [closed]解析合法 JSON 的问题 [关闭]
【发布时间】:2013-01-30 11:25:25
【问题描述】:

我在解析合法和经过验证的 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 上进行了验证。

【问题讨论】:

  • 因为在第二种情况下,属性名称是tag,而不是tags

标签: javascript arrays json object jsonlint


【解决方案1】:

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

var tags = $.parseJSON(response.tag);

【讨论】:

    【解决方案2】:

    你的第二个例子开始了:

    {"tag":
    

    这应该是

    {"tags":
    

    【讨论】:

      猜你喜欢
      • 2012-12-15
      • 2021-03-28
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多