2016-06-29 5 views
0

Mit dem folgenden Code kann ich untergeordnete Knoten in JSON mit Jackson analysieren.Wie Parsen dynamische Kindknoten in Json mit Jackson?

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"); 
} 

Allerdings möchte ich Kind Knoten in JSON mit Jackson und regulären Ausdrücken oder etwas ähnliches analysieren.

ex:

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"); 
} 

Das Problem, das ich habe, ist path("$.subValues3[?(@.testKey=='testValue')]") nicht funktioniert. Irgendwelche Vorschläge?

Antwort

0

Sie können JsonPointer Ausdrücke über at() Methode:

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

Wenn Sie voller Ausdruckssprache vielleicht gibt es Pakete, die das tun wollte: Jackson Projekt konzentriert sich auf der unteren Ebene den Zugriff über Streaming API, Datenbindung und Grund Tree Model .

+0

JsonPointer ist nicht für mich wering. Irgendwelche anderen Pakete oder Vorschläge bitte – gsc0441

+0

Funktioniert nicht wie? Keine anderen Vorschläge. – StaxMan