1.使用FastJson的@JsonField("name" = "***")注解解决
①导入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency>
②字段添加注解
多个字段映射到同一属性
③JSON格式化
EventListVO eventListVO = JSON.parseObject(JSONUtil.toJsonStr(data), EventListVO.class);
2.使用google gson的@SerializedName("***")注解解决
①导出依赖
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency>
②使用注解
public class Employee { private Integer id; private String firstName; private String lastName; @SerializedName(value = "emailId", alternate = "emailAddress") //alternate后的字段,也可以映射到这个属性上 private String email; }
③格式化
public class GsonDemo{ public Employee format(){ System.out.println(emp);String json = "{'id': 1001," + "'firstName': 'Lokesh'," + "'lastName': 'Gupta'," + "'email': 'howtodoinjava@gmail.com'," + "'emailAddress': 'admin@gmail.com'}"; Gson gson = new GsonBuilder().setPrettyPrinting().create(); Employee emp = gson.fromJson(json, Employee.class); System.out.println(emp); } }
3.使用jackson包里的@JsonProperty("***")注解解决
①导入依赖
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>版本号</version> </dependency>
②使用注解
public class Student{ @JsonProperty(value = "name") private String realName; }
③进行序列化反序列化
public class Main { public static void main(String[] args) throws JsonProcessingException { Student student = new Student(); student.setRealName("张三"); System.out.println(new ObjectMapper().writeValueAsString(student)); } }