List<对象>转JSON字符串以及JSON字符串转List<对象>

签名:但行好事,莫问前程。

文章目录


前言

记录一下List<对象>转JSON字符串以及JSON字符串转List<对象>


一、工作需求

产品需求中有一个需求要求页面布局以JSON保存

版本实体类:

java 复制代码
public class SoftwareVersion extends SuperEntity {

    private static final long serialVersionUID = 1L;

    @Schema(description = "版本名称")
    private String name;

    @Schema(description = "版本描述")
    private String description;

    @Schema(description = "板块数量")
    private Integer sectionNumber;

    @Schema(description = "栏目数量")
    private Integer columnNumber;

    @Schema(description = "是否授权全部工具:0-否;1-是")
    private Boolean toolAll;

    @Schema(description = "仅限以下工具,以逗号分割工具主键ID")
    private String toolOnly;

    @Schema(description = "是否授权全部布局:0-否;1-是")
    private Boolean layoutAll;

    @Schema(description = "授权布局【以JSON格式保存】")
    private String pageLayout;

    @Schema(description = "员工数量")
    private Integer employeesNumber;

    @Schema(description = "管理员数量")
    private Integer administratorNumber;
}

版本授权布局dto

java 复制代码
@Data
@Schema(name = "VersionLayoutDto")
public class VersionLayoutDto {

    // 布局名称
    private String name;

    // 布局类型
    private Integer type;

    // 布局数量
    private Integer number;

    // 布局是否可用
    private Boolean able;

}

代码实现:

java 复制代码
public class Demo {

    public static void main(String[] args) {
        List<VersionLayoutDto> versionLayoutDtoList = new ArrayList<>(4);
        VersionLayoutDto versionLayoutDto1 = new VersionLayoutDto();
        versionLayoutDto1.setName("轮播");
        versionLayoutDto1.setType(1);
        versionLayoutDto1.setNumber(6);
        versionLayoutDto1.setAble(true);
        VersionLayoutDto versionLayoutDto2 = new VersionLayoutDto();
        versionLayoutDto2.setName("通栏");
        versionLayoutDto2.setType(2);
        versionLayoutDto2.setNumber(6);
        versionLayoutDto2.setAble(true);
        VersionLayoutDto versionLayoutDto3 = new VersionLayoutDto();
        versionLayoutDto3.setName("两栏");
        versionLayoutDto3.setType(3);
        versionLayoutDto3.setNumber(6);
        versionLayoutDto3.setAble(true);
        VersionLayoutDto versionLayoutDto4 = new VersionLayoutDto();
        versionLayoutDto4.setName("三栏");
        versionLayoutDto4.setType(4);
        versionLayoutDto4.setNumber(6);
        versionLayoutDto4.setAble(true);
        versionLayoutDtoList.add(versionLayoutDto1);
        versionLayoutDtoList.add(versionLayoutDto2);
        versionLayoutDtoList.add(versionLayoutDto3);
        versionLayoutDtoList.add(versionLayoutDto4);

        String jsonString = JSON.toJSONString(versionLayoutDtoList);
        System.out.println("List<VersionLayoutDto> versionLayoutDtoList: 转换成json字符串");
        System.out.println(jsonString);
        System.out.println();
        System.out.println("jsonString 转换成 List<VersionLayoutDto>");
        List<VersionLayoutDto> list = JSONArray.parseArray(jsonString, VersionLayoutDto.class);
        list.forEach(System.out::println);
    }
}

运行结果:

二、List<对象>转JSON字符串

java 复制代码
String jsonString = JSON.toJSONString(versionLayoutDtoList);

三、JSON字符串转List<对象>

java 复制代码
List<VersionLayoutDto> list = JSONArray.parseArray(jsonString, VersionLayoutDto.class);

总结

博客主要记录了List<对象>转JSON字符串以及JSON字符串转List<对象>,有啥错误或不足地方请指正,如果对你有所帮助,请一键三连。

相关推荐
code2cat6 小时前
【随笔】结构化输出:JSON格式过关,业务数据就能入库吗
json·大语言模型
心仪久了会沦陷14 小时前
C语言数据结构入门——树与二叉树详解:概念、堆实现与链式遍历
c语言·数据结构·算法
码少女15 小时前
数据结构——图的基础
数据结构
Severus_black17 小时前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list
二本咕咕-机械转码19 小时前
FreeRTOS深入解析(八)IPC机制之FromISR详解
数据结构·单片机·链表
1-1=021 小时前
C# 数据结构和特殊类型
数据结构·c#·.net·.netcore
希和202721 小时前
C语言程序设计题|有序数组插入数字冒泡排序
c语言·数据结构·算法
布莱克6051 天前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map
D e re k ZH1 天前
C++ 系统学习手记:从语法细节到工程实践
开发语言·数据结构·c++·算法
zh_xuan2 天前
LeeCode 496. 下一个更大元素I
数据结构·算法·栈·单调栈