引入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); } }