You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正确的JSON查询表达式实现指定JSON结构转换

调整JSON查询表达式以生成目标结构

原始输入JSON

{"identifers": {"_id": "f073895e207c3157","attrsDigest": "-706912700","entityTypes": [{"_id": "bacf9e903a6c5def","attrsDigest": "1537152651"},{"_id": "08aac63dacd579c8","attrsDigest": "-1461027456"}],"statuses": [{"_id": "50912252d4781056","attrsDigest": "154590869"}]}}

目标输出JSON

{"identifers": [{"_id": "f073895e207c3157","attrsDigest": "-706912700"},{"_id": "bacf9e903a6c5def","attrsDigest": "1537152651"},{"_id": "08aac63dacd579c8","attrsDigest": "-1461027456"},{"_id": "50912252d4781056","attrsDigest": "154590869"}]}

当前使用的表达式及错误结果

当前查询表达式:

[**].${ "identifers": _id, "digest": attrsDigest }

生成的不符合预期的结果:

{"identifers": ["f073895e207c3157","bacf9e903a6c5def","08aac63dacd579c8","50912252d4781056"],"digest": ["-706912700","1537152651","-1461027456","154590869"]}

正确的查询表达式及说明

方案1:递归匹配(适配结构多变场景)

{
  "identifers": $..[?(@._id && @.attrsDigest)]
}

通过$..递归遍历所有节点,配合过滤器[?(@._id && @.attrsDigest)]筛选出同时包含_id和attrsDigest的对象,直接将这些对象组成数组赋值给identifers。

方案2:精准路径匹配(适配结构固定场景)

{
  "identifers": [$.identifers, $.identifers.entityTypes[*], $.identifers.statuses[*]]
}

明确指定需要收集的对象路径:根节点的identifers对象、entityTypes数组的所有元素、statuses数组的所有元素,将这些对象合并为一个数组赋值给identifers,结果更可控。

内容的提问来源于stack exchange,提问作者ronMilne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:40:33