How to order JSON properties in java - using Jackson

Maven dependency -

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.6</version>
</dependency>
Or Download - bundle (1.3 MB) 

If you are beginner don't worry learn how to Create new Maven project - In 2 minutes

We will use @JsonPropertyOrder

@JsonPropertyOrder({ "emp_name", "address","emp_id"})
public class Employee {
….
}


Employee class

package com.ankit.json;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;

@JsonPropertyOrder({ "emp_name", "address","emp_id"})
public class Employee {

    //Fields
   
    @JsonProperty() //Let it have same name
    private int empId;
   
    @JsonProperty("emp_name") //Make JSON to have emp_name instead of name
    private String name;

    @JsonProperty("emp_address")  //Make JSON to have emp_address instead of address
    private List<String> address;
   
    public Employee() {
          super();
    }
   
    public Employee(int empId, String name, List<String> address) {
          super();
          this.empIdempId;
          this.namename;
          this.addressaddress;
    }
   
    @Override
    public String toString() {
          return "Employee [empId="empId", name="name", address="address"]";
    }
   

    //Setter and getters
    public int getEmpId() {
          return empId;
    }
    public void setEmpId(int empId) {
          this.empIdempId;
    }
    public String getName() {
          return name;
    }
    public void setName(String name) {
          this.namename;
    }
    public List<String> getAddress() {
          return address;
    }
    public void setAddress(List<String> address) {
          this.addressaddress;
    }

}

How to order JSON properties in java- Jackson api


import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.ankit.json.Employee;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ConvertJavaObjectToJson {

    public static void main(String[] args) {
          try {
                 ObjectMapper objectMappernew ObjectMapper();

                 List<String> addesssnew ArrayList<>();
                 addesss.add("Paris");
                 addesss.add("London");
                
                 Employee employeenew Employee(11, "Ankit"addesss);

                 // Convert java object to JSON string
                 String jsonInStringobjectMapper.writeValueAsString(employee);
                 System.out.println("jsonInString = "+jsonInString);

                 // pretty print - Convert java object to JSON string
                 String jsonInStringPrettyobjectMapper.
                       writerWithDefaultPrettyPrinter().writeValueAsString(employee);
                 System.out.println("\njsonInStringPretty = "+jsonInStringPretty);

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

}

//output
/*
jsonInString = {"emp_name":"Ankit","address":["Paris","London"],"empId":11}

jsonInStringPretty = {
"emp_name" : "Ankit",
"address" : [ "Paris", "London" ],
"empId" : 11
}


*/


Related links >

1. Jackson JSON -

We can use Jackson api for for processing JSON in java.

Jackson JSON examples


2. Java provides API (JSR 353) for Processing  JSON (JSR 353).
It provides -
  • Object Model API
  • Streaming API

Java API for JSON processing examples >



3. Simple  (simple.JSONObject)



4. Google Gson - processing java json


eEdit
Must read for you :