Languages Knowledge Base

Parsing & Generating JSON in Java with Jackson and Gson

Complete guide to JSON in Java: parsing with Jackson ObjectMapper and Gson, serializing with @JsonProperty, and pretty printing with a default printer.

In Java, Jackson is the most widely used JSON library. Use ObjectMapper.readValue(json, Class.class) to parse JSON and objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj) to pretty print.

JSON Libraries in Java

Java does not include a built-in JSON library, but two are dominant in production: Jackson (used by Spring Boot) and Gson (used in Android development).

Jackson (Most Common)

  • Dependency: com.fasterxml.jackson.core:jackson-databind
  • Parsing: objectMapper.readValue(jsonString, MyClass.class)
  • Serialization: objectMapper.writeValueAsString(obj)
  • Pretty print: objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj)

Gson (Google)

  • Dependency: com.google.code.gson:gson
  • Parsing: new Gson().fromJson(json, MyClass.class)
  • Serialization: new Gson().toJson(obj)
json
// Jackson — Parse JSON to POJO
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(jsonString, User.class);

// Jackson — Serialize to JSON string
String json = mapper.writeValueAsString(user);

// Jackson — Pretty print
String pretty = mapper.writerWithDefaultPrettyPrinter()
                      .writeValueAsString(user);

// Jackson — Read from File
User fromFile = mapper.readValue(new File("user.json"), User.class);

// Gson — Parse and serialize
Gson gson = new Gson();
User parsed = gson.fromJson(jsonString, User.class);
String serialized = gson.toJson(parsed);

Try the free JSON Formatter

Runs entirely in your browser — no upload, no signup, and your data never leaves your device.

Open JSON Formatter

Frequently Asked Questions

Which is better: Jackson or Gson for Java?

Jackson is preferred for Spring Boot applications and offers more features. Gson is simpler for Android and basic use cases.

How do I pretty print JSON in Java with Jackson?

Use objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj).

How do I handle JSON parse exceptions in Java?

Jackson throws JsonProcessingException on parse failures. Always wrap readValue() in a try/catch.

Related JSON Topics & Reference Articles