How to read and write JSON data with Jackson Core?

Java Conceptuel Diagram


This tutorial shows you how to read and write a JSON data structure with the core package of the Jackson Java serialization library.

The core package is the package that manages all basic serialization and deserialization operations at a low level.

The higher-level package in Jackson that permits to instantiate objects is jackson-databind.



Add the library as a dependency.

Example with Gradle

implementation 'com.fasterxml.jackson.core:jackson-core:2.10.1'


Creation of a reusable (and thread-safe, once configured) JsonFactory instance

JsonFactory factory = new JsonFactory();
// configure, if necessary:

It can also be done with the jackson-databind library.

JsonFactory factory = objectMapper.getFactory();

Reading / Parsing

All reading is done using JsonParser (or its sub-classes, in case of data formats other than JSON), an instance of which is constructed by JsonFactory.

The Input file is:

  "text":"You need to add it as your \"Favourite\"",

The code to parse this Json file with JsonParser:

JsonFactory jsonFactory = new JsonFactory();
Path path = Paths.get("src", "test", "resources", "db-fs", "json");
Path jsonFile = path.resolve("file.json");
JsonParser jsonParser = jsonFactory.createParser(jsonFile.toFile());

// Sanity check: verify that we got "Json Object":
if (jsonParser.nextToken() != JsonToken.START_OBJECT) {
  throw new IOException("Expected data to start with an Object");

// Iterate over object fields:
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
  String fieldName = jsonParser.getCurrentName();
  // Let's move to value
  switch (fieldName) {
	case "id":
	  System.out.println("Id: " + jsonParser.getLongValue());
	case "text":
	  System.out.println("Text: " + jsonParser.getText());
	  throw new IOException("Unrecognized field '" + fieldName + "'");

jsonParser.close(); // important to close both parser and underlying File reader
  • Output:
Id: 4985773666
Text: You need to add it as your "Favourite"


JsonFactory jsonFactory = new JsonFactory();
Path jsonFile = Files.createTempFile("write", ".json");
JsonGenerator jsonGenerator = jsonFactory.createGenerator(jsonFile.toFile(), JsonEncoding.UTF8);
jsonGenerator.useDefaultPrettyPrinter(); // enable indentation

jsonGenerator.writeNumberField("id", 1223);
jsonGenerator.writeStringField("text", "a text");

System.out.println(new String(Files.readAllBytes(jsonFile)));


  "id" : 1223,
  "text" : "a text"

1) 2)

Discover More
Json - Library

Library or software that can parse Json file Language Name Description Stream, File, Console jq a command-line JSON processor. Java Org.Json org/json/JSONTokenerorg.json Parses a JSON (4627RFC...
Java Conceptuel Diagram
What is the Java Jackson Library? (Parser/Writer)

Jackson is a parser and generator library that permits the creation of: textual formats (Json, Xml, Csv, ...) from Java objects. Java objects from textual data In other terms, it's a serialization/deserialization...

Share this page:
Follow us:
Task Runner