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

如何使用JSONPath表达式提取JSON中book对象的属性值数组

JSONPath能否将对象属性值提取为独立数组?

问题描述

原始JSON数据:

{
    "book": [{
        "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
    }, {
        "category": "fiction",
        "author": "Evelyn Waugh",
        "title": "Sword of Honour",
        "price": 12.99
    }]
}

需求:提取book数组内每个对象的属性值,组成独立数组,期望输出:

[
    "reference",
    "Nigel Rees",
    "Sayings of the Century",
    8.95
],
[
    "fiction",
    "Evelyn Waugh",
    "Sword of Honour",
    12.99
]

请问是否可以使用JSONPath表达式实现该需求?


回答

可以使用JSONPath实现该需求,具体实现方式取决于你使用的JSONPath工具:

  • 固定属性名场景:如果对象的属性名是确定的(如示例中的category、author、title、price),多数主流JSONPath实现(如Jayway JsonPath)支持多属性选择表达式:

    $.book[*][category,author,title,price]
    

    这个表达式会遍历book数组中的每个对象,依次提取指定属性值,并将每个对象的属性值组合成独立数组,完全匹配期望的输出格式。

  • 动态属性名场景:如果需要提取对象的所有属性值且不依赖固定属性名,部分JSONPath实现支持结合配置实现分组返回。比如在Jayway JsonPath中,开启RETURN_VALUES_AS_ARRAYS配置后,配合表达式:

    $.book[*].*
    

    工具会将每个对象的所有属性值封装为独立数组返回,而非返回扁平的所有值集合。

注意:不同JSONPath实现的语法特性存在细微差异,建议根据实际使用的工具调整表达式或配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 03:20:24