【问题标题】:Javascript parse nested JSON objectsJavascript 解析嵌套的 JSON 对象
【发布时间】:2015-04-23 07:33:45
【问题描述】:

我是 javascript 新手,我正在尝试解析和操作下面的数据,但不太确定如何去做。有人可以帮忙吗?

JSON 数据

{
    "2009-01": {
        "bbcfour": 324,
        "bbcnews24": 1075,
        "bbcone": 940,
        "bbcthree": 441,
        "bbctwo": 1040,
        "cbbc": 898,
        "cbeebies": 1343
    },
    "2009-02": {
        "bbcfour": 295,
        "bbcnews24": 958,
        "bbcone": 904,
        "bbcthree": 434,
        "bbctwo": 1038,
        "cbbc": 793,
        "cbeebies": 1246
    }}

JavaScript

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="content-language" content="en" />
<meta http-equiv="Content-Type" content="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<link href="main.css" media="all" rel="stylesheet" type="text/css" />
</head>
<body>
<script src="jquery-2.1.1.js"></script>
<script>
$.getJSON('data.json', function (data) {
    console.log(data);
});
</script>
</body>
</html>

【问题讨论】:

  • 你不必解析它; jQuery 会隐式地做到这一点。您想对获取的数据做什么?
  • json 是一个字典结构,表示键、值。如果您想阅读任何价值使用。 jsonobject.key
  • 我希望能够获取每个对象,例如2009-01 并打印其内容

标签: javascript json parsing object nested


【解决方案1】:

使用for...in 循环。

for..in 语句以任意顺序迭代对象的可枚举属性。

   $.getJSON('data.json', function (data) {
        var resp = data;
        for(k in resp)
        {
          console.log(resp[k].bbcfour);
          console.log(resp[k].bbcnews24);
          console.log(resp[k].bbcone);
          // And so on
        }
    });

【讨论】:

  • 谢谢,结果我得到一个“未定义的对象”
  • 应该更像console.log(data[k].bbcfour);
  • 非常感谢大家,感谢我的帮助,因为我是新手。谢谢
  • 很高兴它有帮助,请考虑投票并将其标记为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
相关资源
最近更新 更多