首页 > 其他分享 >json字符串转换对象或列表,多了字段不会报错

json字符串转换对象或列表,多了字段不会报错

时间:2023-08-14 19:12:07浏览次数:38  
标签:String rate 列表 Item json 报错 100 id

json字符串转换对象或列表,多了字段不会报错

//DEMO1 转换对象 应用 riskId
public class Item {
    private String id;
    private String rate;

    public Item(String id, String rate) {
        this.id = id;
        this.rate = rate;
    }

    @Override
    public String toString() {
        return "Item{" +
                "id='" + id + '\'' +
                ", rate='" + rate + '\'' +
                '}';
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getRate() {
        return rate;
    }

    public void setRate(String rate) {
        this.rate = rate;
    }
}


Gson gson = new GsonBuilder().registerTypeAdapter(LocalDateTime.class, (JsonDeserializer<LocalDateTime>) (json, type, jsonDeserializationContext) ->
                LocalDateTime.parse(json.getAsJsonPrimitive().getAsString(), DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss")))
                .registerTypeAdapter(LocalDate.class, (JsonDeserializer<LocalDate>) (json, type, jsonDeserializationContext) ->
                        LocalDate.parse(json.getAsJsonPrimitive().getAsString(), DateTimeFormatter.ofPattern("yyyy-MM-dd"))).create();


        //测试riskId                
        String sss = "{\"id\":\"40\",\"rate\":\"1000\",\"riskId\":\"560000\"}";
        Item test2 = JSON.parseObject(sss,Item.class);
        System.out.println("test2=" + test2.toString());


        Item carInfo = gson.fromJson(sss, Item.class);
        System.out.println("carInfo=" + carInfo.toString());

//测试结果:如果是json字符串多了字段,在映射转换对象的时候,不会报错。

output:
test2=Item{id='40', rate='1000'}
carInfo=Item{id='40', rate='1000'}

// DEMO2 转换列表
 List<Item> configList = new ArrayList<>();
        configList.add(new Item("1","100"));
        configList.add(new Item("2","100"));
        configList.add(new Item("3","100"));
        configList.add(new Item("4","100"));

String json = JSON.toJSONString(configList);
        System.out.println(json);

        List<Item> configList2 = JSON.parseArray(json,Item.class);
        for (Item item : configList2) {
            System.out.println(GsonUtils.toJson(item));
        }

output:
{"id":"1","rate":"100"}
{"id":"2","rate":"100"}
{"id":"3","rate":"100"}
{"id":"4","rate":"100"}

标签:String,rate,列表,Item,json,报错,100,id
From: https://www.cnblogs.com/oktokeep/p/17629499.html

相关文章

  • 在使用npm进行全局安装时报错
    我们在使用npm安装全局以来时,两台电脑安装有可能一台成功了,一台失败了。这是windows执行策略的问题。1.以管理员的身份运行powershell。powershell在开始里查找便可以找到。2.输入命令 set-ExecutionPolicyremoteSigned,选择A允许执行。......
  • 盘点一个列表相加的Python基础题目
    大家好,我是皮皮。一、前言前几天在明佬的Python群【dq】问了一个Python列表基础处理的问题,一起来看看吧。下图是他的原始列表,想通过左边的列表,得到右边的合并列表。二、实现过程这里【流水线】和【hclw】大佬给了一个答案,如下图所示:如此顺利地解决了粉丝的问题。后来他自己也写了个......
  • 使用Navicate 登录SQL server时 报错 建立连接时出现与网络相关的或特定于实例的错误
    1.先查看是否允许远程连接:右键-属性-连接-允许远程连接到此服务器2.若不行的话,再检查SqlServer网络配置里面的SQLEXPRESS的协议-TCP/IP是否启用;3.启用TCP/IP协议之后,右键-属性-IP地址-找到本机ip-设置1433端口......
  • npm 更改package.json 中依赖包前缀
    ~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0 *这意味着安装最新版本的依赖包 推荐使用~ npmconfigsetsave-prefix='~'......
  • 列表生成式会忽略空bytes数值
    list_strip=[i.strip()foriinstr_result]list_result=[]foriinlist_strip:#判断是否为十六进制,且非空if(is_hex(i.decode()))and(len(i)>0):list_result.append(i)list_result改进list_filter=[i.strip()foriinstr_resultifi.stri......
  • Git:Vscode提交报错Make sure you configure your "user.name" and "user.email" in gi
    使用VScode编辑代码后,Push到云端报错:Makesureyouconfigureyour"user.name"and"user.email"ingit解决步骤:1.进入本地端的文件夹,右键GitBash; 2.输入命令:$gitconfig--globaluser.name"your_username"#配置用户名$gitconfig--globaluser.email&qu......
  • SAP UI5 manifest.json 里定义的 sap.ui.viewExtensions 区域的解析代码位置
    笔者这篇教程介绍了如何在SAPFioriElements应用的manifest.json里注册Extensionfragment,从而给ListReport应用的Table区域新增自定义列:10.如何通过扩展(Extension)的方式给SAPFioriElementsListReport的表格新增列上图extends区域注册的Extension信......
  • SAP UI5 manifest.json 文件里 extends 区域的内容是如何被解析的
    笔者这篇教程介绍了如何在SAPFioriElements应用的manifest.json里注册Extensionfragment,从而给ListReport应用的Table区域新增自定义列:10.如何通过扩展(Extension)的方式给SAPFioriElementsListReport的表格新增列我浏览器打开了SAPFioriElements应......
  • 在MQTT通信中用AT指令发送json格式的内容
    在MQTT通信中使用AT指令发送JSON格式的内容,需要使用适用于你的设备的AT指令集,并按照以下步骤进行操作:建立MQTT连接:首先,使用AT指令建立与MQTT代理服务器的连接。这可能涉及到设置服务器地址、端口、用户名、密码等参数。创建JSON数据:在你的设备中,使用AT指令创建要发送的JSON格式的......
  • Process.Start 报错
    Process.Start报错System.Diagnostics.Process.StartWithShellExecuteExProcess.Start为什么会引发“系统找不到指定的文件”异常Process.Start报错找不到路径,System.ComponentModel.Win32Exception:“系统找不到指定的文件。问题1、在WinForm中可能是权限问题,设置文件......