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

news2024/9/30 19:41:05

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

文章目录

  • 前言
  • 一、工作需求
  • 二、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<对象>,有啥错误或不足地方请指正,如果对你有所帮助,请一键三连。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2066100.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最少钱学习并构建大模型ollama-llama3 8B

学习大模型时可能面临一些困难&#xff0c;这些困难可能包括&#xff1a; 计算资源限制&#xff1a;训练大模型通常需要大量的计算资源&#xff0c;包括CPU、GPU等。如果设备资源有限&#xff0c;可能会导致训练时间长、效率低下或无法完成训练。 内存限制&#xff1a;大模型通…

卫星图揭秘《黑神话:悟空》山西取景地

8月20日&#xff0c;国产单机游戏巨制《黑神话&#xff1a;悟空》在全球同步解锁&#xff0c;游戏以《西游记》为背景&#xff0c;并以其精美的画面和深刻的剧情吸引了全球玩家&#xff0c;被誉为“国产游戏之光”。 游戏画面在国内36处实地取景&#xff0c;其中有27个来自山西…

日志审计Graylog 使用教程-kafka收取消息

Graylog 是一个开源的日志管理和分析平台。它主要用于收集、存储、处理和分析大量的日志数据。Graylog 的核心功能包括&#xff1a; 日志收集&#xff1a;Graylog 可以从各种来源&#xff08;如服务器、网络设备、应用程序等&#xff09;收集日志数据。它支持多种输入方式&…

122-域信息收集应用网络凭据CS插件AdfindBloodHound

参考&#xff1a;【内网安全】域信息收集&应用网络凭据&CS插件&Adfind&BloodHound_ladon adfinder bloodhound-CSDN博客 工作组和域环境 我的理解&#xff1a; 工作组就是还是局域网一样只是大一点里面的电脑很多&#xff0c;每个电脑还是都是单独的电脑没有…

萤石C++ SDK Demo播放4G摄像头

萤石开放平台官方提供的Demo是有问题的&#xff0c;无法直接使用。提交工单后&#xff0c;技术人员回复要修改配置文件才能使用。 1. 下载SDK 2.修改配置文件EZPCOpenSDK_v5.1.18_build20230808\demo\win32\EzvizQtDemo.ini 3.运行EzvizQtDemo1.exe 点击左上角【登录】按钮&am…

黑神话悟空,高清壁纸、原画,游戏截图

黑神话悟空&#xff0c;高清壁纸、原画&#xff0c;游戏截图&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/cd17c05c4f33

安卓工控主板在轨道交通中的应用特点

安卓工控主板在轨道交通中的应用特点主要体现在以下几个方面&#xff1a; 一、高效的数据处理与通信能力 强大的处理能力&#xff1a;安卓工控主板通常搭载高性能的处理器&#xff0c;如某些型号可能搭载飞腾D2000八核CPU等&#xff0c;这些处理器能够高效处理轨道交通系统中…

C语言学习——用指针处理链表

目录 11.7用指针处理链表 链表概述 简单链表 处理动态链表所需的函数 malloc函数 calloc函数 free函数 建立动态链表 输出链表 对链表的删除操作 对链表的插入操作 对链表的综合操作 11.7用指针处理链表 链表概述 链表是一种常见的数据结构。它是动态地进行存储分…

【架构设计】-- aarch(ARM) and X86

1、aarch(ARM) 架构 &#xff08;1&#xff09;操作系统支持&#xff1a;早期为 32 位操作系统&#xff0c;目前大部分都是 64 位操作系统 &#xff08;2&#xff09;全称&#xff1a;Advanced RISC Machine&#xff0c;由英国ARM Holdings plc公司开发 这种架构主要⽤于智能…

chatglm3-6b下载时,需要下载哪些文件

在huggingface或modelscope上下载chatglm3-6b时&#xff0c;会发现有两种可执行文件&#xff0c;一种是.bin&#xff0c;一种是.safetensors&#xff0c;在使用的时候你如果直接用git命令git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git直接下载&#xff0c;你会…

【中仕公考怎么样】事业编ABCDE类对应的专业

事业编考试分为ABCDE五个类别&#xff0c;对应的专业分别是&#xff1a; 综合应用能力(A类)&#xff1a; 招聘专业&#xff1a;汉语言与文秘类、法律类、新闻传播类、治安学、治安管理、社会工作、老年服务、青少年服务、思想政治教育、安全工程、公共事业管理、行政管理、人力…

前端打字效果

页面效果链接&#xff0c;点击查看https://live.csdn.net/v/419208?spm1001.2014.3001.5501 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …

图像处理之:Video Processing Subsystem(一)

免责声明&#xff1a; 本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下&#xff0c;作者不对因使用本文内容而导致的任何直接或间接损失承担责任&#xff0c;包括但不限于数据丢失、业务中断或其他经济…

deque容器的所有操作

1.deque原理 2.deque构造函数 只读迭代器这么写&#xff1a; 3.deque赋值操作 4.deque大小操作 5.deque插入和删除操作 6.deque数据存取 7.deque排序

Linux阿里云服务器,利用docker安装EMQX

第一步&#xff0c;给云服务器docker进行加速 阿里云搜索“镜像加速器”&#xff0c;找到下面这个菜单&#xff0c;点进去 然后找到镜像工具下的镜像加速器 把这个加速器地址复制 然后在自己的云服务器中&#xff0c;找到docker的文件夹 点击json配置文件 把地址修改为刚刚…

边坡监测预警摄像机

边坡是指山体或河岸等地表的斜坡部分&#xff0c;由于受到地质构造、气候变化等因素的影响&#xff0c;边坡可能存在塌方、滑坡等危险情况。为了及时监测和预警边坡的变化情况&#xff0c;可以使用边坡监测预警摄像机 。 边坡监测预警摄像机是一种结合了摄像技术和智能算法的设…

算法的学习笔记---按之字形顺序打印二叉树

&#x1f600;前言 在算法的学习中&#xff0c;二叉树是一种非常基础但又十分重要的数据结构。今天&#xff0c;我们将讨论一种特殊的二叉树遍历方法&#xff1a;之字形顺序打印。这个方法要求我们以“之”字形的顺序遍历并打印二叉树的节点值&#xff0c;也就是第一行从左到右…

开放式耳机别人能听到吗?现在开放式耳机用防漏音效果越来越好!

回答&#xff1a; 开放式耳机的通透的设计允许一部分声音泄露出来&#xff0c;因此站在您旁边的人确实有可能听到您耳机中的声音&#xff0c;尤其是当音量设置得比较高时。开放式耳机通常提供更为自然和宽敞的听感&#xff0c;但牺牲了一定的隔音效果和隐私性。如果您需要在公…

台球助教在线预约小程序源码开发:打造便捷高效的台球学习新体验

在当今快节奏的生活中&#xff0c;台球作为一项集休闲、竞技与社交于一体的运动&#xff0c;受到了越来越多人的喜爱。然而&#xff0c;对于初学者而言&#xff0c;想要快速提升技能&#xff0c;往往需要专业的指导和陪练。传统的台球教练预约方式往往存在信息不对称、预约流程…

Qt实现圆型控件的三种方法之子类化控件并重写paintEvent

前言 最近在研究绘制各种形状的控件&#xff0c;这里专门挑出圆形的控件进行记录&#xff0c;其它形状的也大差不差&#xff0c;会了圆形的之后其它的也类似。 正文 这里我挑出Label来进行举例。 子类化 QLabel 并重写 paintEvent 如果需要更复杂的自定义绘制&#xff0c;…