Maybe some time for any special use case we need to keep JSON object properties in some specific order. This can be done in two ways in Java.
1- Just write a method to return JSON string in that order or you can override toString() the the the the method with JSON string in order properties.
2- Use Jackson library and @JsonPropetyOrder class attribute.
3- Using LinkedHashMap will serialize in inserted order and TreeMap will serialize in sorted key order
Example of Jackson Property order
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.istack.NotNull;
import java.io.IOException;
import java.util.UUID;
@JsonPropertyOrder({ "id", "password", "name", "email", "enabled" })
public class UserResource {
    private UUID id;
    @NotNull
    private String name;
    @NotNull
    private String email;
    private boolean enabled;
    private String password;
    public UserResource(UUID id, String name, String email, boolean enabled, String password) {
        this.id = id;
        this.name = name;
        this.email = email;
        this.enabled = enabled;
        this.password = password;
    }
    public UUID getId() {
        return id;
    }
    public void setId(UUID id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public boolean isEnabled() {
        return enabled;
    }
    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public static void main(String args[]){
        ObjectMapper mapper = new ObjectMapper();
        try {
            UserResource student = new UserResource(UUID.randomUUID(), "sheel", "sheel@c4c.com",true, "$$$$$$%%##^^$DSGHHH");
            String jsonString = mapper
                    .writerWithDefaultPrettyPrinter()
                    .writeValueAsString(student);
            System.out.println(jsonString);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Output is given below
{
  "id" : "fbfcd21d-731e-4acb-9fec-90a499e47cc9",
  "password" : "$$$$$$%%##^^$DSGHHH",
  "name" : "sheel",
  "email" : "sheel@c4c.com",
  "enabled" : true
}
Example of Ordered Serialization in JSON using LinkedHashMap and TreeMap
public static void main(String args[]){
        ObjectMapper mapper = new ObjectMapper();
        Map<String, String> itemObj = new LinkedHashMap<>();
        itemObj.put("s91","Value1");
        itemObj.put("s2","Value2");
        itemObj.put("s3","Value3");
        itemObj.put("s4","Value4");
        try {
            String jsonString = mapper
                    .writerWithDefaultPrettyPrinter()
                    .writeValueAsString(itemObj);
            System.out.println(jsonString);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
Output
{
  "s91" : "Value1",
  "s2" : "Value2",
  "s3" : "Value3",
  "s4" : "Value4"
}
Using TreeSet
public static void main(String args[]){
ObjectMapper mapper = new ObjectMapper();
Map itemObj = new LinkedHashMap<>();
itemObj.put(“s91″,”Value1”);
itemObj.put(“s2″,”Value2”);
itemObj.put(“s3″,”Value3”);
itemObj.put(“s4″,”Value4”);
try {
public static void main(String args[]){
        ObjectMapper mapper = new ObjectMapper();
        Map<String, String> itemObj = new TreeMap<>();
        itemObj.put("s91","Value1");
        itemObj.put("s2","Value2");
        itemObj.put("s3","Value3");
        itemObj.put("s4","Value4");
        try {
            String jsonString = mapper
                    .writerWithDefaultPrettyPrinter()
                    .writeValueAsString(itemObj);
            System.out.println(jsonString);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
Output
{
  "s2" : "Value2",
  "s3" : "Value3",
  "s4" : "Value4",
  "s91" : "Value1"
}
