Saturday, 8 November 2014

Jackson Streaming API to Read JSON

Hi guys
In the previous post we saw how to write JSON using Jackson. Lets see how to read JSON using Jackson Streaming API.

  1. JsonParser – Parse JSON.

JsonParser



On the other hand, use JsonParser to parse or read above file “data.json“, and display each of the values.

import java.io.File;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.JsonMappingException;

public class Read {
public static void main(String[] args) {

try {

JsonFactory jfactory = new JsonFactory();

/*** read from file ***/
JsonParser jParser = jfactory.createJsonParser(new File("./src/data.json"));

// loop until token equal to "}"
while (jParser.nextToken() != JsonToken.END_OBJECT) {

String fieldname = jParser.getCurrentName();
if ("blogname".equals(fieldname)) {

// current token is "blogname",
// move to next, which is "name"'s value
jParser.nextToken();
System.out.println(jParser.getText()); // display oraclejavatechzone.com

}

if ("subject".equals(fieldname)) {

// current token is "subject",
// move to next, which is "name"'s value
jParser.nextToken();
System.out.println(jParser.getText()); // display java

}

if ("year".equals(fieldname)) {

// current token is "year",
// move to next, which is "name"'s value
jParser.nextToken();
System.out.println(jParser.getIntValue()); // display 2013

}

if ("posts".equals(fieldname)) {

jParser.nextToken(); // current token is "[", move next

// posts is array, loop until token equal to "]"
while (jParser.nextToken() != JsonToken.END_ARRAY) {

// display post11, post2, post3
System.out.println(jParser.getText());

}

}

}
jParser.close();

} catch (JsonGenerationException e) {

e.printStackTrace();

} catch (JsonMappingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}
}
}

Output:
That's All guys..




Jackson Streaming API to Write JSON

Hi guys,
In this post i show you how to create JSON file using Jackson Streaming API.

Jackson supports read and write JSON via high-performance Jackson Streaming APIs, or incremental mode. Read this Jackson Streaming APIs document for detail explanation on the benefit of using streaming API.

Jackson’s streaming processing is high-performance, fast and convenient, but it’s also difficult to use, because you need to handle each and every detail of JSON data.

In this tutorial, i show you how to use following Jackson streaming APIs to read and write JSON data.
  1. JsonGenerator – Write to JSON.
  2. JsonParser – Parse JSON.
JsonGenerator
In this example, you use “JsonGenerator” to write JSON “field name”, “values” and “array of values” into a file name “file.json“. See code comments for self-explanatory.


import java.io.File;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonGenerator;

public class WriteJson {
public static void main(String[] args) {

try {

JsonFactory jfactory = new JsonFactory();

/*** Write JSON TO FILE ***/
JsonGenerator jGenerator = jfactory.createGenerator(new File("./src/data.json"), JsonEncoding.UTF8);
jGenerator.writeStartObject();  //{

jGenerator.writeStringField("blogname", "oraclejavatechzone.com");
jGenerator.writeStringField("subject", "java");

jGenerator.writeNumberField("year", 2013);

jGenerator.writeFieldName("posts"); //"posts":

jGenerator.writeStartArray(); //[
jGenerator.writeString("post 1");
jGenerator.writeString("post 2");
jGenerator.writeString("post 3");

jGenerator.writeEndArray(); \\]
jGenerator.writeEndObject(); //}

jGenerator.close();
System.out.println("File write successfully");

} catch (JsonGenerationException e) {
e.printStackTrace();

} catch (IOException e) {
e.printStackTrace();

}
}
}

As result, following new file named “data.json” is created :


That's All Folks...