签名:但行好事,莫问前程。
文章目录
- 前言
- 一、工作需求
- 二、List<对象>转JSON字符串
- 三、JSON字符串转List<对象>
- 总结
前言
记录一下List<对象>转JSON字符串以及JSON字符串转List<对象>
一、工作需求
产品需求中有一个需求要求页面布局以JSON保存
版本实体类:
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<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字符串
String jsonString = JSON.toJSONString(versionLayoutDtoList);
三、JSON字符串转List<对象>
List<VersionLayoutDto> list = JSONArray.parseArray(jsonString, VersionLayoutDto.class);
总结
博客主要记录了List<对象>转JSON字符串以及JSON字符串转List<对象>,有啥错误或不足地方请指正,如果对你有所帮助,请一键三连。