如何用JSONPath将扁平JSON对象拆分为单成员对象数组?
能否用JSONPath将扁平JSON对象转换为单成员对象数组?
标准JSONPath无法直接实现你需要的转换。
JSONPath的设计目标是从JSON结构中提取匹配的节点或值,不支持重新构造新的JSON结构——它只能筛选、提取已有内容,没法将单个键值对封装成独立对象并组成数组。
你尝试的$.[*]表达式会直接提取所有属性的值,得到扁平值数组;@只是引用当前匹配的节点值,同样无法保留属性键并完成对象封装。
替代实现方案
如果需要完成这个转换,可以通过编程语言结合简单遍历实现(无需JSONPath也能高效完成),比如JavaScript示例:
const input = { "field1": 123, "field2": 456, "fieldN": 789 }; // 将对象键值对转换为单成员对象数组 const output = Object.entries(input).map(([key, value]) => ({ [key]: value })); console.log(JSON.stringify(output, null, 2));
执行后会输出你期望的结果:
[ {"field1": 123}, {"field2": 456}, {"fieldN": 789} ]
内容的提问来源于stack exchange,提问作者Mathias R. Jessen
相关产品推荐
相关产品推荐

