常用json转换

2022-05-16  本文已影响0人  楼兰King
String字符串转bean对象-嵌套对象和list结构
相关实体类:
import lombok.Data;
import java.io.Serializable;
@Data
public class result<T> implements Serializable {
    private String msg;
    private Integer code;
    private T data;
}
----------------
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class ResultPresetSettingsDto {
    private static final long serialVersionUID = 1L;
    private Long id;
    private String deviceGbCode;
    private String channelGbCode;
    private List<PresetDto> presetList;
    private Date createDate;
}
---------------
import lombok.Data;
@Data
public class PresetDto {
    private String presetName;
    private Long presetId;
}
---------main方法测试-----------
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class qqqq {
    public static void main(String[] args) {
      //模拟封装对象
        result result=new result();
        result.setCode(200);
        result.setMsg("操作成功");
        ResultPresetSettingsDto settingsDto=new ResultPresetSettingsDto();
        settingsDto.setChannelGbCode("11011500001310000001");
        settingsDto.setDeviceGbCode("11011500001320000001");
        settingsDto.setId(1L);
        List<PresetDto> presetDtos=new ArrayList<>();
        PresetDto dto=new PresetDto();
        dto.setPresetId(2L);
        dto.setPresetName("preset1");
        presetDtos.add(dto);
        dto=new PresetDto();
        dto.setPresetId(3L);
        dto.setPresetName("preset2");
        presetDtos.add(dto);
        settingsDto.setPresetList(presetDtos);
        result.setData(settingsDto);
        System.out.println(JSON.toJSONString(result));
      //String转bean对象
        Gson gson = new Gson();
        result settingsDto1 = gson.fromJson(JSON.toJSONString(result),result.class);
        System.out.println(JSON.toJSONString(settingsDto1));

        String zhi="{\"msg\":\"操作成功\",\"code\":200,\"data\":{\"deviceGbCode\":\"11011500001320000001\",\"channelGbCode\":\"11011500001310000001\",\"presetList\":[{\"presetName\":\"preset1\",\"presetId\":1},{\"presetName\":\"preset2\",\"presetId\":2},{\"presetName\":\"preset3\",\"presetId\":3},{\"presetName\":\"preset4\",\"presetId\":4},{\"presetName\":\"preset5\",\"presetId\":5},{\"presetName\":\"preset6\",\"presetId\":6},{\"presetName\":\"preset7\",\"presetId\":7},{\"presetName\":\"preset8\",\"presetId\":8},{\"presetName\":\"preset9\",\"presetId\":9},{\"presetName\":\"preset200\",\"presetId\":200}]}}";
        JSONObject object= JSON.parseObject(zhi);

        String list=JSON.toJSONString(object.getJSONObject("data").get("presetList"));
        List<PresetDto> list1= JSONArray.parseArray(list,PresetDto.class);
        System.out.println(list1.toString());

        Gson gson1 = new Gson();
        ResultPresetSettingsDto dto1 = gson1.fromJson(object.get("data").toString(),ResultPresetSettingsDto.class);
        System.out.println(JSON.toJSONString(dto1));

        ResultPresetSettingsDto settingsDto2 = JSON.parseObject(object.getJSONObject("data").toString(), new TypeReference<ResultPresetSettingsDto>() {});
        System.out.println(JSON.toJSONString(settingsDto2));
    }
}
上一篇 下一篇

猜你喜欢

热点阅读