How to deep select Nodes based on given depth in Java? How to deep select Nodes based on given depth in Java? json json

How to deep select Nodes based on given depth in Java?


If you may switch to Gson library you may use im.wilk.vor:Voritem library gitHub or in Maven repository.

VorItem vorItemFactory = VorItemFactoryBuilder.standard.build();JsonElement je = JsonParser.parse(...)VorItem vi = vorItemFactory.from(je);VorItem result = vorItemFactory.empty();for (int idx = 0; idx < vi.get("result").list().size(); idx++) {    result.get(idx).set("name", vi.get("result").get(idx).get("associations/child/name");    result.get(idx).set("key", vi.get("result").get(idx).get("associations/child/key");}return result.asJsonElement().toString();


I found Andreas suggestion to be very effective and usage friendly, I was able to achieve desired output by using JSONPath library .

Usage code is as follows:

ObjectMapper objectMapper = new ObjectMapper();String root = objectMapper.readTree(new File("/Users/pramo/automation/foo.json")).toString();List<Object> associations = JsonPath.read(root, "$.results[*].associations.child");