【问题标题】:How to parse dynamic child nodes in json using jackson?如何使用jackson解析json中的动态子节点?
【发布时间】:2016-11-01 19:06:48
【问题描述】:

使用下面的代码,我可以使用 Jackson 解析 JSON 中的子节点。

JsonNode recordNode = records.get(i).path("values").get(j).path("subValues1").path("subValues2").path("subValues3");

for(int k=0; k<recordsDimensions.size()-1;k++){
JsonNode recordNode1 = records.get(i).path("values").get(j).path("subValues1").path("subValues2").path("subValues3").get(k).path("subValues4");
}

但是,我想使用 Jackson 和正则表达式或类似的东西来解析 JSON 中的子节点。

例如:

for(int k=0; k<recordsDimensions.size()-1;k++){
JsonNode recordNode1 = records.get(i).path("values").get(j).path("subValues1").path("subValues2").**path("$.subValues3[?(@.testKey=='testValue')]")**.path("subValues4");
}

我遇到的问题是path("$.subValues3[?(@.testKey=='testValue')]") 不起作用。有什么建议吗?

【问题讨论】:

    标签: json regex parsing jackson


    【解决方案1】:

    您可以通过at() 方法使用JsonPointer 表达式:

    String value = records.at("/1/values/2/subValues1/subValues2").asString();
    

    如果您想要完整的表达语言,也许有一些包可以做到这一点:Jackson 项目专注于通过 Streaming API、数据绑定和基本树模型进行较低级别的访问。

    【讨论】:

    • JsonPointer 不适合我。请提供任何其他软件包或建议
    猜你喜欢
    • 1970-01-01
    • 2018-04-13
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 2012-07-05
    相关资源
    最近更新 更多