首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用唯一命名的子数组访问JSON值

使用唯一命名的子数组访问JSON值
EN

Stack Overflow用户
提问于 2019-08-19 16:37:39
回答 2查看 71关注 0票数 0

我想根据子数组中的时间值对JSON数组进行排序,其中子数组的键名是唯一命名的。

我正在搜索访问Products中每个元素的键、值update_time的方法,以便在排序脚本中使用该值。

我已尝试对数组进行排序,但无法确定如何访问子数组的键、值

预期的行为应该是每个unique_keyname_#元素都可用于排序,并且已排序以便在JavaScript中进行进一步处理。根据update_time键,最终将最新的unique_keyname_#作为列表中的第一个元素。

代码语言:javascript
运行
复制
var obj = {
  "company": {
    "department_1": {
      "Products": {
        "unique_keyname_1": {
          "product_owner": "co-worker-1",
          "update_time": "unix_timestamp_1"
        },
        "unique_keyname_5": {
          "product_owner": "co-worker-4",
          "update_time": "unix_timestamp_45"
        },
        "unique_keyname_8": {
          "product_owner": "co-worker-2",
          "update_time": "unix_timestamp_5"
        }
      }
    },
    "department_2": {
      "Products": {
        "unique_keyname_3": {
          "product_owner": "co-worker-1",
          "update_time": "unix_timestamp_21"
        },
        "unique_keyname_6": {
          "product_owner": "co-worker-2",
          "update_time": "unix_timestamp_7"
        },
        "unique_keyname_4": {
          "product_owner": "co-worker-3",
          "update_time": "unix_timestamp_75"
        }
      }
    }
  }
}
EN

回答 2

Stack Overflow用户

发布于 2019-08-19 19:55:24

我用python编写了一个中间脚本,使API响应成为一个有效的数组,从而解决了这个问题。从那里对数据进行排序是相当容易的。

感谢你的回复,确认数据本身是以不适当的格式发送给我的!

问候

票数 0
EN

Stack Overflow用户

发布于 2019-08-19 16:54:16

在您的示例中,没有数组。无论如何,在Javascript中,您可以使用.访问节点,如下所示:

代码语言:javascript
运行
复制
 obj.company.department_1.Products.unique_keyname_1

或者使用[],它使您可以更自由地使用装饰域

代码语言:javascript
运行
复制
 obj["company"]["department_1"]["Products"]["unique_keyname_1"]
// can also be more dynamic as:
 obj["company"]["department_"+ department_counter]["Products"]["unique_keyname_" + keyname_counter]

你有可能改变你的JSON的结构吗?让它更易于操控?

如果是这样的话,我会推荐下面的结构:

代码语言:javascript
运行
复制
var products = [
  {
    department: 'SomeDepartment',
    productName: 'Something',
    productOwner: 'Someone',
    update_time: 'Sometime'
  }
]

然后,您可以使用排序主题的Array.sort()轻松地对数组进行排序,使用这个:Sort array of objects by string property value

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

https://stackoverflow.com/questions/57553125

复制
相关文章

相似问题

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