引入gson和fastjson依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.79</version>
</dependency>
实体类
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
/**
* @Description: 序列化与反序列化字段别名映射
* @Author:chenyanbin
* @CreateTime: 2022-02-16 09:17
* @Version:1.0.0
*/
@Data
public class ExcelVo {
//序列化json时,name字段的别名为姓名
@JsonProperty("姓名")
//反序列化时,姓名字段的别名为name
@SerializedName("姓名")
private String name;
//序列化json时,age字段的别名为年龄
@JsonProperty("年龄")
//反序列化时,年龄的别名为age
@SerializedName("年龄")
private String age;
}
单元测试
import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description:
* @Author:chenyanbin
* @CreateTime: 2022-02-16 09:19
* @Version:1.0.0
*/
public class Test01 {
public static void main(String[] args) {
Map<String, String> jsonMap = new HashMap<>();
jsonMap.put("姓 名", "Alex");
jsonMap.put("年 龄", "01");
List<Map<String, String>> list = new ArrayList<>();
list.add(jsonMap);
Map<String, String> jsonMap2 = new HashMap<>();
jsonMap2.put("姓 名", "Alex111");
jsonMap2.put("年 龄", "01222");
list.add(jsonMap2);
//组装json数据
String jsonString = JSON.toJSONString(list);
System.out.println(jsonString);
//json反序列化别名映射(包含中文)
List<ExcelVo> excelVos = new Gson().fromJson(jsonString, new TypeToken<List<ExcelVo>>() {
}.getType());
excelVos.stream().forEach(System.err::println);
}
}
