java 反序列化,json字段别名
引入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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
2020-02-16 链表