Jackson JsonNode.forEach() with Java 8 Consumer
March 02, 2015
Jackson has provided JsonNode.forEach() method which will accept Java 8 consumer definition to iterate each node. The consumer accepts only super classes of JsonNode. It has been defined as below.
forEach(Consumer<? super JsonNode> arg)
info.json
{ "id":1, "name":"Arvind", "village":"Dhananjaypur", "district":"Varanasi", "state":"UP" }
IterateJSONwithConsumer.java
package com.concretepage; import java.io.File; import java.io.IOException; import java.util.function.Consumer; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.map.ObjectMapper; public class IterateJSONwithConsumer { public static void main(String[] args) throws JsonParseException, IOException { JsonFactory jsonFactory = new JsonFactory(); JsonParser jp = jsonFactory.createJsonParser(new File("D:/cp/info.json")); jp.setCodec(new ObjectMapper()); JsonNode jsonNode = jp.readValueAsTree(); Consumer<JsonNode> data = (JsonNode node) -> System.out.println(node.asText()); jsonNode.forEach(data); } }
1 Arvind Dhananjaypur Varanasi UP