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

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

文章目录

  • 前言
  • 一、工作需求
  • 二、List<对象>转JSON字符串
  • 三、JSON字符串转List<对象>
  • 总结


前言

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


一、工作需求

产品需求中有一个需求要求页面布局以JSON保存
List<对象>转JSON字符串以及JSON字符串转List<对象>_第1张图片
List<对象>转JSON字符串以及JSON字符串转List<对象>_第2张图片
版本实体类:

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

@Data
@Schema(name = "VersionLayoutDto")
public class VersionLayoutDto {

    // 布局名称
    private String name;

    // 布局类型
    private Integer type;

    // 布局数量
    private Integer number;

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

}

代码实现:

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 versionLayoutDtoList: 转换成json字符串");
        System.out.println(jsonString);
        System.out.println();
        System.out.println("jsonString 转换成 List");
        List<VersionLayoutDto> list = JSONArray.parseArray(jsonString, VersionLayoutDto.class);
        list.forEach(System.out::println);
    }
}

运行结果:

List<对象>转JSON字符串以及JSON字符串转List<对象>_第3张图片

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

String jsonString = JSON.toJSONString(versionLayoutDtoList);

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

List<VersionLayoutDto> list = JSONArray.parseArray(jsonString, VersionLayoutDto.class);

总结

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

你可能感兴趣的:(Java,list,json,数据结构)