2016-06-29 94 views
0

使用下面的代碼,我可以使用Jackson解析JSON中的子節點。如何使用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"); 
} 

但是,我想使用傑克遜和正則表達式或類似的東西來解析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')]")不工作。有什麼建議麼?

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

如果你想充分表達語言或許有一些做的包:傑克遜項目的重點是通過流API,數據綁定和基本樹模型的低級別的訪問

回答

0

您可以通過at()方法使用JsonPointer表達式。

+0

JsonPointer不爲我着想。任何其他包或建議請 – gsc0441

+0

不工作如何?沒有其他建議。 – StaxMan