Java 序列化对象为json字符串,属性首字母大写,并按照属性首字母排序

时间:2025-02-16 12:33:41

1、创建类

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonPropertyOrder(alphabetic = true)
public class User {

    @JsonProperty("Id")
    private Integer id;

    @JsonProperty("Name")
    private String name;

    @JsonProperty("LoginName")
    private String loginName;

    @JsonProperty("LoginPassword")
    private String loginPassword;

    @JsonProperty("Address")
    private String address;
}

说明:
@JsonPropertyOrder(alphabetic = true):此注解用于类上,作用是将返回的json按属性按照字母表排序。
@JsonProperty(): 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把name属性序列化为Name。

2、序列化

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

User user = new User(1, "李浩", "lihao", "123456", "安徽");
ObjectMapper objectMapper = new ObjectMapper();
String serializeUser = objectMapper.writeValueAsString(user);
System.out.println(serializeUser);

3、序列化结果

{"Address":"安徽","Id":1,"LoginName":"lihao","LoginPassword":"123456","Name":"李浩"}