【问题标题】:JsonPath parse json error in javajava中的JsonPath解析json错误
【发布时间】:2016-02-05 23:26:57
【问题描述】:

这是 JSON:

{
"datas": {
    "selling": {
        "3": [
            26452067,
            31625950
        ],
        "206": [
            32381852,
            32489262
        ],
        "208": [
            458
        ],
        "217": [
            27364892
        ],
        "226": [
            30474109
        ]
    }
},
"status": 0
}

我的路径是$.datas.selling['3','206'].\*
我想同时获得“3”和“206”数据。像这样的 JSON:

[
    26452067,
    31625950,
    32381852,
    32489262
]

但现在它不起作用。错误信息是

多属性只能用作路径叶子: $['datas']['sales']['3', '206']

我的 JsonPath maven 版本是 2.0.0 (JsonPath's test website)。

其实JsonPath可以在0.9.1版本运行,是不是bug?

我该如何解决?

2015-12-01 现在,JsonPath 新版本解决了这个问题。 谢谢!

【问题讨论】:

  • 我对jsonpath一无所知,但如果它只涉及json那么很容易解析。
  • 为什么不直接使用路径 .datas. sell['3'].* 和 .datas. sell['206'].* 并结合结果?
  • 为什么不使用 gson 或 jackson..?
  • 我认为问题有两个方面:1) 您使用的表达式可能看起来合乎逻辑,但底层 source code 不支持它2) 很遗憾,您无法过滤 keys。所以要么更改源代码(我不推荐),要么通过组合两个查询来使用@NecroTheif 的解决方案。
  • @NecroTheif 在某些场景中,我无法合并它。

标签: java json regex parsing jsonpath


【解决方案1】:

我用这种方式,

$.datas.*.*[?(@>1000)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-03
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    相关资源
    最近更新 更多