将JSON数组转化为List集合_json转list_吟游诗人丶的博客-程序员秘密

技术标签: spring boot  java  json  redis  

假如我们向redis中存放了一个JSON数组,从中获取的时候需要将JSON数组转化为List集合,然后将List对象返回给前端。

1.引入hutool和fastjson依赖

        <!--hutool-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.17</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.66</version>
        </dependency>

2.hutool的作用是使用JSONUtil类将数据库查到的List集合转化成JSON数组,存到redis中

List<ShopType> typeList = typeService.query().list();
String typeListJson = JSONUtil.toJsonStr(typeList);
stringRedisTemplate.opsForValue().set("shopList",typeListJson);

3.fastjson的JSONObject类作用是将JSON数组转换成List集合

String shopList = stringRedisTemplate.opsForValue().get("shopList");
List<ShopType> list = JSONObject.parseArray(shopList, ShopType.class);
return Result.ok(list);

完整代码:

    @GetMapping("list")
    public Result queryTypeList() {
        String shopList = stringRedisTemplate.opsForValue().get("shopList");
        if(StringUtils.isEmpty(shopList)){
            List<ShopType> typeList = typeService
                    .query().orderByAsc("sort").list();

            String typeListJson = JSONUtil.toJsonStr(typeList);
            stringRedisTemplate.opsForValue().set("shopList",typeListJson);
            return Result.ok(typeList);
        }
        List<ShopType> list = JSONObject.parseArray(shopList, ShopType.class);
        return Result.ok(list);
    }

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43510558/article/details/124133396

智能推荐

sqlite的学习笔记转载_sqlist类似于指针吗_压屏哥的博客-程序员秘密

前序:Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为 unix 平台写代码。下面我所写的东西,虽然没有验证,但是我已尽量不使用任何 windows 的东西,只使用标准 C 或标准C++。但是

IOS切图直接作为Android切图使用_一杯苦芥的博客-程序员秘密

跳槽到新公司之后,发现工作真心挺坑的,基本没什么流程规范,职责分工也不明确,整天瞎折腾。。。,慢慢的开始怀念起老东家了。       在新公司UI只提供ios的切图给开发,其实他们不会做android切图。。。,因为以前都是直接用android切图做的适配,所以第一次遇到这种情况时,自己也不知道该怎么办了,只好先把ios切图用起来,然后慢慢去填适配的坑了。其实,在了解互用关系后,将ios对应的

Git 详解 和 廖雪峰 Git 教程_git教程廖雪峰pdf_擒贼先擒王的博客-程序员秘密

转载:廖雪峰 git 教程:https://www.liaoxuefeng.com/wiki/896043488029600GitHub 秘籍:https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.zh-cn.mdGit Community Book 中文版:http://gitbook.liuhui99...

Java中Scanner的用法:单行/多行输入_橘子汽水$的博客-程序员秘密

Java的Scanner用法,主要用于算法笔试时的控制台输入文章目录Java的Scanner用法,主要用于算法笔试时的控制台输入1 问题:解决这种情况下的Scanner输入:单行,多行,数值,字符串2 最好解决的情况3 单行输入多个参数4 多行输入多个参数,每行参数个数不定1 问题:解决这种情况下的Scanner输入:单行,多行,数值,字符串平时写程序一般不用Scanner,线上笔试的时候,各大公司热衷于Scanner输入。平时用LeetCode刷题也不会用到,结果多次在笔试时候卡在Scanner,

/etc/profile 和~/.bash_profile区别_Shyllin的博客-程序员秘密

/etc/profile 和~/.bash_profile区别/etc/profile为系统的每个用户设置环境信息和启动程序,当用户第一次登录时,该文件被执行,其配置对所有登录的用户都有效。当被修改时,必须重启才会生效。英文描述:”System wide environment and startup programs, for login setup.”~/.bash_profile为当...

随便推点

java里如何重制匹配器_如何在java中重置JFrame_DRcthink的博客-程序员秘密

我是java的初学者.我有ImageFrame类如下:public class ImageFrame extends JFrame {private static final long serialVersionUID = 1L;public static final int DEFAULT_WIDTH = 1365;public static final int DEFAULT_HEIGHT =...

CentOS 7下安装部署Elasticsearch 6.3.2_zhou_fan_xi的博客-程序员秘密

elasticsearch简介ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文检索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。实验部署1、实验所需组件及环境...

浅析proc文件系统的创建和create_proc_read_entry函数的具体实现_crond123的博客-程序员秘密

<br />浅析kern_mount加载sysfs的流程<br /><br />  因为sysfs是一个内存文件系统,所以文件的物理存储关系就需要使用sd来维护,因此sysfs_dirent即sd就类似于硬盘中的磁道.<br />  sysfs文件系统是一个排它式的文件系统,不论被mount多少次都只产生一个sb超级块,<br />如果尝试再次mount,即尝试再次调用sysfs_get_sb获取另一个sb超级块,那么将执行atomic_inc(old->s_active);增加

FTP服务器,FTP服务器在python下配置(测试用)FTP之间不同的区别_普通网友的博客-程序员秘密

使用FTP上传工具进行远程连接FTP用于在FTP服务器和FTP客户端之间上传和下载文件,它最优秀的功能就是可以批量管理,可以将文件从一个主机传输到另一个主机。地址:服务器管理工具使用FTP上传工具最优秀的功能就是可以批量管理、批量上传,适用于Windows系统,Linux系统和云服务器等,能极大的提高站长及服务器运维人员工作效率,同时FTP上传工具还是vnc客户端,真正实现了一站式管理,非常方便。Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用

Android 手机存储目录详解_X小飞侠的博客-程序员秘密

一.手机存储(一)内置私有存储,手机需root后才能看到获取路径的方法1.getFilesDir()/data/data/[packagename]/files 文件缓存目录,一般存小的文件缓存,如果是图片,不建议放这里,一般放到外置卡。2.getCacheDir()/data/data/[packagename]/cache目录 存放一些其他缓存