首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问多维JSON对象

如何访问多维JSON对象
EN

Stack Overflow用户
提问于 2017-04-28 19:31:01
回答 3查看 65关注 0票数 0

我正在发送JSON编码数组列表,它给出了以下输出:

代码语言:javascript
复制
[
  "2017",
  "4",
  "2017-04-28",
  "2017-4-30",
  "6",
  36,
  42,
  {
    "2017-4-1": "",
    "2017-4-2": "",
    "2017-4-3": 1,
    "2017-4-4": 1,
    "2017-4-5": "",
    "2017-4-6": "",
    "2017-4-7": "",
    "2017-4-8": "",
    "2017-4-9": "",
    "2017-4-10": "",
    "2017-4-11": "",
    "2017-4-12": "",
    "2017-4-13": 2,
    "2017-4-14": "",
    "2017-4-15": 1,
    "2017-4-16": 3,
    "2017-4-17": "",
    "2017-4-18": 1,
    "2017-4-19": "",
    "2017-4-20": "",
    "2017-4-21": "",
    "2017-4-22": "",
    "2017-4-23": "",
    "2017-4-24": "",
    "2017-4-25": "",
    "2017-4-26": 1,
    "2017-4-27": 2,
    "2017-4-28": "",
    "2017-4-29": "",
    "2017-4-30": 2
  }
]

我可以使用jQuery访问上面的数组:

代码语言:javascript
复制
var json = $.parseJSON(response);
var dateYear = json[0];

但是如何访问这些数据呢?

代码语言:javascript
复制
"2017-4-1": "",
"2017-4-2": "",
"2017-4-3": 1,
"2017-4-4": 1,
"2017-4-5": "",
"2017-4-6": "",
"2017-4-7": "",
"2017-4-8": "",
"2017-4-9": "",
"2017-4-10": "",
"2017-4-11": "",
"2017-4-12": "",
"2017-4-13": 2,
"2017-4-14": "",
"2017-4-15": 1,
"2017-4-16": 3,
"2017-4-17": "",
"2017-4-18": 1,
"2017-4-19": "",
"2017-4-20": "",
EN

回答 3

Stack Overflow用户

发布于 2017-04-28 19:35:18

为此,您只需循环遍历数组的第8个元素,如下所示:

代码语言:javascript
复制
var dateYear = ["2017","4","2017-04-28","2017-4-30","6",36,42,{"2017-4-1":"","2017-4-2":"","2017-4-3":1,"2017-4-4":1,"2017-4-5":"","2017-4-6":"","2017-4-7":"","2017-4-8":"","2017-4-9":"","2017-4-10":"","2017-4-11":"","2017-4-12":"","2017-4-13":2,"2017-4-14":"","2017-4-15":1,"2017-4-16":3,"2017-4-17":"","2017-4-18":1,"2017-4-19":"","2017-4-20":"","2017-4-21":"","2017-4-22":"","2017-4-23":"","2017-4-24":"","2017-4-25":"","2017-4-26":1,"2017-4-27":2,"2017-4-28":"","2017-4-29":"","2017-4-30":2}];

for (var key in dateYear[7]) {
  console.log(key + ' = ' + dateYear[7][key]);
}

票数 0
EN

Stack Overflow用户

发布于 2017-04-28 19:36:08

您可以像这样访问对象中的键:for(key in obj)

代码语言:javascript
复制
var obj = [
  "2017",
  "4",
  "2017-04-28",
  "2017-4-30",
  "6",
  36,
  42,
  {
    "2017-4-1": "",
    "2017-4-2": "",
    "2017-4-3": 1,
    "2017-4-4": 1,
    "2017-4-5": "",
    "2017-4-6": "",
    "2017-4-7": "",
    "2017-4-8": "",
    "2017-4-9": "",
    "2017-4-10": "",
    "2017-4-11": "",
    "2017-4-12": "",
    "2017-4-13": 2,
    "2017-4-14": "",
    "2017-4-15": 1,
    "2017-4-16": 3,
    "2017-4-17": "",
    "2017-4-18": 1,
    "2017-4-19": "",
    "2017-4-20": "",
    "2017-4-21": "",
    "2017-4-22": "",
    "2017-4-23": "",
    "2017-4-24": "",
    "2017-4-25": "",
    "2017-4-26": 1,
    "2017-4-27": 2,
    "2017-4-28": "",
    "2017-4-29": "",
    "2017-4-30": 2
  }
];

var last = obj[7];
for(key in last) {
  console.log(key);
}

票数 0
EN

Stack Overflow用户

发布于 2017-04-28 19:56:38

使用下面的jQuery代码。运行一个for()循环以获取所有数组数据,然后检查对象,然后再添加一个子for()循环以访问另一个object类型的子数据。

检查下面的代码片段:

代码语言:javascript
复制
for (var i = 0; i < myArr.length; i++) {
        if (typeof myArr[i] === "object") {
          for (var sec = 1; sec < 30; sec++) {
            $("ul").append("<li><span>" + myArr[i]["2017-4-" + sec] + "</span></li>")
          }
        } else {
          $("ul").append("<li>" + myArr[i] + "</li>")
        }

      }

代码语言:javascript
复制
$(document).ready(function() {
  var myArr = [
    "2017",
    "4",
    "2017-04-28",
    "2017-4-30",
    "6",
    36,
    42,
    {
      "2017-4-1": "object 1",
      "2017-4-2": "object 2 ",
      "2017-4-3": 1,
      "2017-4-4": 1,
      "2017-4-5": "",
      "2017-4-6": "",
      "2017-4-7": "",
      "2017-4-8": "",
      "2017-4-9": "",
      "2017-4-10": "",
      "2017-4-11": "",
      "2017-4-12": "",
      "2017-4-13": 2,
      "2017-4-14": "",
      "2017-4-15": 1,
      "2017-4-16": 3,
      "2017-4-17": "",
      "2017-4-18": 1,
      "2017-4-19": "",
      "2017-4-20": "",
      "2017-4-21": "",
      "2017-4-22": "",
      "2017-4-23": "",
      "2017-4-24": "",
      "2017-4-25": "",
      "2017-4-26": 1,
      "2017-4-27": 2,
      "2017-4-28": "",
      "2017-4-29": "",
      "2017-4-30": 2
    }
  ]

  // Fetching data
  for (var i = 0; i < myArr.length; i++) {
    if (typeof myArr[i] === "object") {
      for (var sec = 1; sec < 30; sec++) {
        $("ul").append("<li><span>" + myArr[i]["2017-4-" + sec] + "</span></li>")
      }
    } else {
      $("ul").append("<li>" + myArr[i] + "</li>")
    }

  }
});
代码语言:javascript
复制
li span {
  color: green
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<ul></ul>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43679183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档