字符串转为对应的java类
业务描述:
某个设备的配置信息使用字符串保存
{ "isOpen": true, "startTime": "21:00:00", "endTime": "07:00:00", "seconds": 360, "exhalationOrSaver": 1, "screensaverPicture": "/resource/img/20230311/751805b66a3b4f8ab876365087c52038.jpg" }
定义好的java类
package com.****; import lombok.Data; /** * @Author: * @Date: 2023/3/22 9:38 * @Description: 智慧看板终端具体配置项 */ @Data public class WnNurseTvConfigDto { /** * 设备id */ private String deviceId; /** * 是否开启定时屏保 */ private Boolean isOpen; /** * 开始时间 */ private String startTime; /** * 结束时间 */ private String endTime; /** * 点亮屏幕X秒后息屏 */ private int seconds; /** * 息屏or屏保 * 0: 息屏 * 1: 屏保 */ private int exhalationOrSaver; /** * 屏保图片 */ private String screensaverPicture; }
获取到配置数据后,转为对应的类
// 其中nurseTvDeviceDtoList.get(i).getConfig() = 字符串 {"isOpen":true,"startTime":"21:00:00","endTime":"07:00:00","seconds":360,"exhalationOrSaver":1,"screensaverPicture":"/resource/img/20230311/751805b66a3b4f8ab876365087c52038.jpg"} WnNurseTvConfigDto configDto = JSON.parseObject(nurseTvDeviceDtoList.get(i).getConfig(), new TypeReference<WnNurseTvConfigDto>() {}); //赋值 nurseTvDeviceDtoList.get(i).setWnNurseTvConfigDto(configDto); //或者第二种实现方式 WnNurseTvConfigDto configDto1 = JSON.parseObject(nurseTvDeviceDtoList.get(i).getConfig(),WnNurseTvConfigDto.class); nurseTvDeviceDtoList.get(i).setWnNurseTvConfigDto(configDto1);
集合修改:
//集合 //返回的是指定map对象 JSON.parseObject("{key:value,key1:value2......}", new TypeReference<Map<k, v>>(){}); //例如: hashMap<String,Object> map=JSON.parseObject("{key:value,key1:value2......}", new TypeReference<Map<String,Object>>(){});