我正在尝试使用sum
的{{1}}函数,但遇到了一些麻烦。我设法弄清楚了如何在多个条件下使用搜索功能。这句话:
JMESPath
返回此JSON数组:
var x = search(myData, "Account[].Details[? Year=='2018' && Title=='ABC'].Amount");
现在我想做的就是总结这些值。 JMESPath specification表示对内置["2404.00", "2404.00", "2402.67", "2699.00", "2699.00", "2698.49"]
函数使用以下语法:
sum
我不知道如何使用此功能。有人可以帮忙吗?
答案 0 :(得分:1)
我拿了您的last example,并添加了更多示例数据,我们将对价格求和
const testData =
{
"ServiceAccount": [
{
"Type": "WIDGET",
"ID": [
{
"OrderNum": "12345",
"OrderTyp": "ABDCD",
"Price": "10",
}
]
},
{
"Type": "WIDGET",
"ID": [
{
"OrderNum": "22345",
"OrderTyp": "ZBDCD",
"Price": "20",
}
]
},
{
"Type": "WIDGET",
"ID": [
{
"OrderNum": "22385",
"OrderTyp": "ZBDXD",
"Price": "30",
}
]
}
]
};
const result = jmespath.search(testData, 'sum(ServiceAccount[].ID[].Price.to_number(@))');
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jmespath/0.15.0/jmespath.min.js"></script>
那么,当前问题的答案是这样:
var x = search(myData, "sum(Account[].Details[? Year=='2018' && Title=='ABC'].Amount.to_number(@))");