CoderSathi
  • Tutorial
    • Java Tutorial
    • Swing Tutorial
    • JDBC Tutorial
    • Java String Tutorial
    • Servlet and JSP Tutorial
  • Mongo DB
  • AWS
  • DevOps
  • Linux
  • Git
Home > Java > Java JSON Serialization and Deserialization

Java Tutorial

  • Introduction
    • What is Java
    • History Of Java
    • Install Java
    • What is JVM
    • JDK vs JRE vs JVM
    • Java Bytecode
    • OOP vs POP
    • Compile and Run Java
  • Tokens, Expressions and Control Structures
    • Primitive data types
    • Integers
    • Floating Points
    • Characters
    • Booleans
    • User Defined Data Type
    • Declarations
    • Constants
    • Identifiers
    • Literals
    • Type Conversion and Casting
    • Variables
    • Default Variable Initialization
    • Command Line Arguments
    • Arrays of Primitive Types
    • Comment Syntax
    • Garbage Collection
    • Expressions
    • Operators
    • Arithmetic Operator
    • Bitwise and Shift Operator
    • Comparison or Relational Operators
    • Logical Operators
    • Assignment Operators
    • Ternary Operator
    • Increment and Decrement Operator
    • Control Statements
  • OOP Concepts
    • Class and Object
    • Create Class Instance
    • Method
    • Abstraction
    • Encapsulation
    • this keyword
    • Constructor
    • Pass by Value
    • Access Modifier/Control
    • Polymorphism
    • Method Overloading vs Method Overriding
    • Recursion
    • Nested and Inner Class
  • Inheritance and Packaging
    • Inheritance
    • extends Keyword
    • super Keyword
    • Object Class
    • Abstract class
    • Final Class
    • Java Package
    • Interface
  • Handling Error/ Exceptions
    • What is Exception
    • Exception Handling Keywords
    • Common Java Errors
    • User Defined Exception
    • Throwing and re-throwing Exception
    • finally Block
  • Strings
    • Java String Tutorial
  • Threads
    • Introduction
    • Create Thread
    • Thread Lifecycle
    • Thread Priority
    • Thread Synchronization
    • Inner Thread Communication
    • Thread Deadlock
  • IO and Streams
    • java.io Package
    • Files and Directories
    • Byte Stream
    • Character Stream
    • Console Input and Output
    • Serializable and Deserializable
  • Core Packages
    • java.lang Package
    • Math
    • Wrapper Classes
    • java.lang.Number
    • Double
    • Float
    • Integers
    • java.lang.Byte
    • java.lang.Short
    • java.lang.Long
    • java.lang.Character
    • java.lang.Boolean
    • java.util package
    • Vector Class
    • Stack Class
    • Dictionary Class
    • Hashtable
    • Enumeration or Enum
    • Generate Random Number
  • Holding Collection of Data
    • Arrays
    • Map
    • List
    • Set
    • Collection Interface
    • Collections Class
    • ArrayList
    • HashSet
    • TreeSet
    • Comparator
  • Java Bean
    • What is Java Bean
    • Advantages and Disadvantages of Java Bean
    • Java Beans API
    • Introspection
    • Java Bean Properties
    • Bound and Constrained Properties
    • BeanInfo Interface
    • Customizers
    • Java Beans Persistence
    • BeanDescriptor
  • Home

Java JSON Serialization and Deserialization

Learn the concepts, implementation details, and practical steps with a clean developer-focused walkthrough.

Yuba Raj Kalathoki
By Yuba Raj Kalathoki
Last updated: July 1, 2026 · 3 min read · 0 Comments
Share: in X

In modern software development, the conversion of Java objects to JSON and JSON String to Java Objects is essential for seamless data interchange. In this post we will learn to implement Java JSON serialization and deserialization, using popular libraries such as Jackson.

Table of Contents

Dependency
Convert Java Object to JSON String
Convert JSON String to Java Object
Error Cannot construct instance of
Java JSON Serialization and Deserialization example
Conclusion

Dependency

First, add Jackson as a dependency to our project:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>{latest_version}</version>
</dependency>

Alternatively, you can copy Jakson Databind dependency from maven repository.

Convert Java Object to JSON String

To start, let’s explore how to convert Java objects to JSON strings using Jackson library. In this example, we will convert Java object to JSON using ObjectMapper.

Now, let’s consider an example where we have a Person class:

package com.codersathi;

public class Person {

	private String name;
	private int age;

	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}
package com.codersathi;

import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
	public static void main(String[] args) throws Exception {
		convertJavaObjectToJSONString();
	}

	private static void convertJavaObjectToJSONString() throws JsonProcessingException {
		Person person = new Person("Coder Sathi", 30);
		ObjectMapper objectMapper = new ObjectMapper();
		String jsonString = objectMapper.writeValueAsString(person);
		System.out.println(jsonString);
	}
}

Output

{"name":"Coder Sathi","age":30}

Convert JSON String to Java Object

Next, let’s discuss deserializing JSON strings into Java objects using Jackson. Similarly, we will convert JSON String to Java object using ObjectMapper.

Following is an example of how we can achieve this:

package com.codersathi;

public class Main {
	public static void main(String[] args) throws Exception {
		convertJavaObjectToJSONString();
		convertJSONStringToJavaObject();
	}

	private static void convertJSONStringToJavaObject()
			throws JsonMappingException, JsonProcessingException {
		String json = "{\"name\":\"Coder Sathi\",\"age\":30}";
		ObjectMapper objectMapper = new ObjectMapper();
		Person person = objectMapper.readValue(json, Person.class);
		System.out.println(person.getName()); // Output: Coder Sathi
		System.out.println(person.getAge()); // Output: 30
	}


}

Error Cannot construct instance of

When we run the code above it will throw an exception Cannot construct instance of.

The complete error looks like below:

Exception in thread "main" com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.codersathi.Person` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (String)"{"name":"Coder Sathi","age":30}"; line: 1, column: 2]

This is because, while converting JSON String to Java Object Jackson expects default constructor for Java Class. In our case Person class.

Now, if we add default constructor in Person class then we see the expected output.

Java JSON Serialization and Deserialization example

See the complete example of Converting Java Object to JSON and vice versa below:

package com.codersathi;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

class Person {

	private String name;
	private int age;

	public Person() {
	}

	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}

public class Main {
	public static void main(String[] args) throws Exception {
		convertJavaObjectToJSONString();
		convertJSONStringToJavaObject();
	}

	private static void convertJSONStringToJavaObject()
			throws JsonMappingException, JsonProcessingException {
		String json = "{\"name\":\"Coder Sathi\",\"age\":30}";
		ObjectMapper objectMapper = new ObjectMapper();
		Person person = objectMapper.readValue(json, Person.class);
		System.out.println(person.getName()); // Output: Coder Sathi
		System.out.println(person.getAge()); // Output: 30
	}

	private static void convertJavaObjectToJSONString() throws JsonProcessingException {
		Person person = new Person("Coder Sathi", 30);
		ObjectMapper objectMapper = new ObjectMapper();
		String jsonString = objectMapper.writeValueAsString(person);
		System.out.println(jsonString);
	}
}

Conclusion

In this post, we learn to convert Java Object to JSON String and vice versa using Jackson library. We also learn how to fix Cannot construct instance of error that comes during JSON String to Java Object conversion.

Related Posts:

  • (Solved) Java 8 date/time types are not supported by default
  • Type Conversion and Casting in Java
  • How to Convert JSON Array to Java List (With Examples)
  • Control Statements in Java
  • A Brief History Of Java
  • What Is Java Swing? A Complete Guide to Java’s GUI Toolkit
Tags:javajson
Was this article helpful?
← Previous ArticleJDBC Configuration
Next Article →JRadioButton in Java Swing

Recent Posts

  • How to implement Passwordless Authentication in Spring Boot: A Step-by-Step Guide
  • How to Use AWS CloudFront Signed URLs in Spring Boot?
  • How to Fix SSH Agent Forwarding on macOS: The Ultimate Guide for Developers
  • How to Read AWS Secrets Manager in Spring Boot (Step-by-Step)
  • How to Fix “Public Key Retrieval is not allowed” MySQL JDBC Error
CoderSathi

Your go-to resource for Java, Spring Boot, Microservices, AWS, and modern development tutorials.

Linkedin

Quick Links

  • About
  • Contact

Popular Topics

  • Java
  • Spring Boot
  • AWS
  • DevOps
  • MongoDB
  • Linux
  • Git
  • How to
© 2026 CoderSathi. All rights reserved. Privacy Policy · Sitemap