json - 如何使用 Jora 查询计算 JSON 中的唯一值

标签 json jora

给定一个如下所示的数组,我如何计算每个“水果”类型的出现次数 Jora查询?

[
    {"fruit": "apple"},
    {"fruit": "orange"},
    {"fruit": "banana"},
    {"fruit": "banana"},
    {"fruit": "apple"},
    {"fruit": "apple"}
]

我正在寻找这样的答案:

[
    {"fruit": "apple", "count": 3},
    {"fruit": "orange", "count": 1},
    {"fruit": "banana", "count": 2}
]

最佳答案

以下查询将为您提供所需的答案:

group(<fruit>).({fruit: key, count: value.size()})

或更明确地说,包括隐式选择器:

@.group(<$.fruit>).map(<{"fruit": $.key, "count": $.value.size()}>)

为了分解它,我们首先使用 group() method ,将 <> 的选择器的“函数”(尖括号 fruit )传递给它。请注意,我们可以省略隐式查询输入选择器 @.它可以在方法调用和隐式范围选择器之前 $.fruit选择器。

所以group(<fruit>)给我们的结果是:

[
    { "key": "apple", "value": [{…}, {…}, {…}] },
    { "key": "orange", "value": [{…}] },
    { "key": "banana", "value": [{…}, {…}] }
]

然后我们可以使用 map()方法或映射的括号重载 .() ,带有我们正在寻找的结果的对象定义 {fruit: key, count: value.size()} ,创建一个新数组,给出计数或 .size() valuegroup() 的结果中的数组.


这对我来说已经足够挣扎了,Jora足够新,文档有限,我认为询问和回答这可能会对某人有所帮助。

关于json - 如何使用 Jora 查询计算 JSON 中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58430062/

相关文章:

java - 转换 JSON 数据以匹配新的 Java 模型

javascript - 两个具有通用工厂和 ng-repeat 刷新功能的 Controller

Python NoneType 对象不可下标

java - 如何将具有复合键的键值结构映射到 Java 中的 json 对象

json - 如何在 JSON 发现报告中使用 Jora 提取特定 key

php - 如何使用PHP从JSON提取数据?