gpt4 book ai didi

jmespath - 使用 JMESPATH 过滤具有 json 值的对象列表

转载 作者:行者123 更新时间:2023-12-02 19:17:25 24 4
gpt4 key购买 nike

我有一个 JSON,我需要使用 JMESPATH 选择人员角色的值。我可以仅使用一个静态 id 来完成此操作,例如 roles[?id=='1324'],但我无法使用从 JSON 中选择的角色 id 列表。我尝试使用: roles[?id==person[ * ].role[ * ].id[ ]] 并使用管道来做到这一点,但没有任何结果。下面是我的 JSON 示例。

{
"person":[
{
"id":"999999999",
"role":[
{
"id":"1324",
"name":"Test"
},
{
"id":"1578",
"name":"Test 2"
}
]
},
{
"id":"888888888",
"role":[
{
"id":"1234",
"name":"Test"
},
{
"id":"1678",
"name":"Test 2"
}
]
}
],
"roles":[
{
"id":"1234",
"value":"$945.00"
},
{
"id":"1324",
"value":"$1245.00"
},
{
"id":"1578",
"value":"$3245.00"
},
{
"id":"1678",
"value":"$4245.00"
}
]
}

最佳答案

快速回答(TL;DR)

  • 通常,使用 JMESPath 轻松查询 JSON 很容易
    • 一个轻松的关键是利用专门规范化的 JSON 结构,以便与 JMESPath 实现最佳使用
    • 一个轻松的关键是知道何时在 JSON 中使用字典(又名对象//关联数组//映射)名称-值对,以使 JSON 的所有部分都能够明确引用
  • 不幸的是,这个特定问题的目标对于标准 JMESPath 是无法实现的,因为 JMESPath 缺少一个标记来引用 current-node 上下文中的 JSON 数据根
  • 要完成此任务,您必须脱离 JMESPath 并使用托管语言的功能

详细答案

上下文

  • JMESPath v 0.9.4

场景:

  • 开发人员SOHugoFerreira 希望使用 JSON 一部分的交叉引用来查询 JSON 数据,以动态填充 JSON 另一部分的 JMESPath 查询

问题

  • 不幸的是,这个特定问题的目标对于标准 JMESPath 是无法实现的,因为 JMESPath 缺少一个标记来引用 current-node 上下文中的 JSON 数据根

另请参阅

关于jmespath - 使用 JMESPATH 过滤具有 json 值的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55401222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com