首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将Nest结构作为列表获取?

将Nest结构作为列表获取?
EN

Stack Overflow用户
提问于 2015-09-07 14:44:31
回答 1查看 267关注 0票数 1

我正在努力处理Nest API及其对结构的JSON响应。我想要一个结构对象的列表,但是Nest使用了多个属性来命名结构的ID。在我看来,实现这个的人完全误解了如何使用JSON。我希望能让Nest API返回一个更合理的JSON结构。有没有办法从Nest得到一个对列表更友好的JSON repsonse?如果是这样的话,是怎么做的?

这就是Nest返回结构的方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "structures": {
        "VqFabWH21nwVyd4RWgJgNb292wa7hG_dUwo2i2SG7j3-BOLY0BA4sw": {
            "structure_id": "VqFabWH21nwVyd4RWgJgNb292wa7hG_dUwo2i2SG7j3-BOLY0BA4sw",
            "thermostats": [
                "peyiJNo0IldT2YlIVtYaGQ"
            ],
            "smoke_co_alarms": [
                "RTMTKxsQTCxzVcsySOHPxKoF4OyCifrs"
            ],
            "devices": {},
            "away": "home",
            "name": "Home",
            "country_code": "US",
            "postal_code": "94304",
            "peak_period_start_time": "2015-10-31T23:59:59.000Z",
            "peak_period_end_time": "2015-10-31T23:59:59.000Z",
            "time_zone": "America/Los_Angeles",
            "eta": {},
            "wheres": {
                "Fqp6wJI...": {
                    "where_id": "Fqp6wJI...",
                    "name": "Bedroom"
                }
            }
        }
    }
}

这是我想要得到的结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "structures": [
         {
            "structure_id": "VqFabWH21nwVyd4RWgJgNb292wa7hG_dUwo2i2SG7j3-BOLY0BA4sw",
            "thermostats": [
                "peyiJNo0IldT2YlIVtYaGQ"
            ],
            "smoke_co_alarms": [
                "RTMTKxsQTCxzVcsySOHPxKoF4OyCifrs"
            ],
            "devices": [],
            "away": "home",
            "name": "Home",
            "country_code": "US",
            "postal_code": "94304",
            "peak_period_start_time": "2015-10-31T23:59:59.000Z",
            "peak_period_end_time": "2015-10-31T23:59:59.000Z",
            "time_zone": "America/Los_Angeles",
            "eta": {},
            "wheres": [
                {
                    "where_id": "Fqp6wJI...",
                    "name": "Bedroom"
                }
            }
        ]
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-09-08 13:18:39

JSON没有任何问题,您看到的是associative array,它是一种集合形式,就像数组、列表或集合一样。在JSON中,关联数组可以表示为对象{}。它是一种非常基本的数据结构,有许多名称,包括Map或Dictionary,具体取决于所使用的编程语言。

使用关联数组还是普通数组/列表在很大程度上取决于您想要访问项的方式。它与存储在集合中的对象类型没有任何关系。

通常,如果希望通过键值访问项,则使用关联数组;如果希望通过位置访问项,则使用“普通”数组/列表。此外,如果项的顺序很重要,“普通”数组/列表通常更好,而关联数组通常是不排序的(尽管它们可能取决于实现细节)。

大多数编程环境允许您迭代关联数组的键值列表,从而允许对“普通”数组/列表进行类似的访问。

下面是一个用JavaScript编写的简单示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var c;
c = [1, 2]; // ordinary array
c[0]; // access by position

var i;
for (i = 0; i < c.length; ++i) { // loop through all items and ...
    console.log(c[i]); // access by position
}

c = {"key1": 1, "key2": 2}; // associative array
c.key2; // access by key

var key;
for (key in c) { // iterate over all keys and ...
    console.log(c[key]); // access by key value
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32441275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文