如何使用JSONLogic提取JSON对象数组中指定ID的元素?
使用JSONLogic从退款详情中提取指定ID的记录
要从refunds节点的detail数组里提取id=12345的记录,用JSONLogic的filter操作完全可以实现,针对对象数组的筛选逻辑和基础类型数组的核心思路一致,只是需要在条件里引用对象的属性字段。
核心实现逻辑
用filter遍历目标数组,通过判断每个对象的id字段是否等于目标值来筛选:
{ "filter": [ {"var": "refunds.detail"}, {"==": [{"var": "id"}, 12345]} ] }
- 第一个参数
{"var": "refunds.detail"}指定要筛选的目标数组 - 第二个参数是筛选条件:用
==比较当前数组元素的id(通过{"var": "id"}引用)和12345
执行该表达式后,会返回包含匹配对象的数组:
[{"id":12345,"amount":7}]
若需直接获取单个对象(而非数组)
可以配合get操作取筛选结果数组的第一个元素:
{ "get": [0, { "filter": [ {"var": "refunds.detail"}, {"==": [{"var": "id"}, 12345]} ] }] }
执行后直接返回匹配的对象:
{"id":12345,"amount":7}
内容的提问来源于stack exchange,提问作者Alejandro Herrera
相关产品推荐
相关产品推荐

