首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JSONAta获取包含值的键的名称

JSONAta获取包含值的键的名称
EN

Stack Overflow用户
提问于 2022-04-10 18:26:55
回答 1查看 812关注 0票数 0

我使用JSONAta库来传递一个复杂的对象。我需要得到钥匙的名字,如果它符合某一条件。

代码语言:javascript
运行
复制
{
"properties": {
                "WTID": {
                    "pattern": "reference-data",
                    "type": "string"
                },
                "VCRSID": {
                    "pattern": "reference-data",
                    "type": "string"
                },
                "VMSID": {
                    "pattern": "reference-data",
                    "type": "string"
                },
                "DroneID": {
                    "pattern": "unique-data",
                    "type": "string"
                }
            }
}

我想要其模式等于引用数据的所有键的名称,即WTID、VCRSID、VMSID。如何使用JSONAta查询。

到目前为止,我已经尝试使用以下查询:

代码语言:javascript
运行
复制
**[$contains(pattern, 'reference-data')]

但是这只返回值,我无法引用任何键。

EN

回答 1

Stack Overflow用户

发布于 2022-04-11 01:39:35

如果您期望得到["WTID", "VCRSID","VMSID"],那么这就是解决方案:

代码语言:javascript
运行
复制
$keys(properties) ~> $filter(function ($key) {
  $lookup(properties, $key).pattern = "reference-data"
})
  1. 获取properties对象的所有键作为数组。
  2. 遍历每个键,在$key中查找properties对象中的值。
  3. 只有当上一步中的对象中的pattern属性等于"reference-data"时才返回键

您也可以使用这个解决方案的交互式版本在这里

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

https://stackoverflow.com/questions/71819427

复制
相关文章

相似问题

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