首页 > 数据库 >多层嵌套json字符串(jsonStr)写入redis

多层嵌套json字符串(jsonStr)写入redis

时间:2024-10-11 10:20:40浏览次数:10  
标签:jsonStr String JSONObject redis js js01 json key

1、连接redis

Jedis jedis = new Jedis("localhost", 6379);

2、将字符串转为json格式

JSONObject js=JSONObject.fromObject(jsonStr);

3、对json格式进行解析

4、将json写入redis

 public static void RedisSet(JSONObject js,Jedis js01)
    {
//获取json中的所有key
        Set<String>keys=js.keySet();
//遍历所有的key,将数据写入redis
        for(String key:keys)
        {
//判断是否是多层镶嵌json
            if(isJSON(js.getString(key)))
            {
//将内层json字符串转为json格式
                JSONObject js1=JSONObject.fromObject(js.getString(key));
//递归调用解析json格式
                RedisSet(js1,js01);
            }
//将数据写入redis
            js01.set(key,js.getString(key));
        }
}

5、判断字符串是否为json格式

    public static Boolean  isJSON(String str)
    {
        String pattern = "^\\{.*}$|^\\[.*]$";
        return str.matches(pattern);
    }

6、关闭连接

redis.close;

7、关闭连接

return ture;
 
return false

全部代码

    public static Boolean  isJSON(String str)
    {
        String pattern = "^\\{.*}$|^\\[.*]$";
        return str.matches(pattern);
    }
    public static void RedisSet(JSONObject js,Jedis js01)
    {

        Set<String>keys=js.keySet();
        for(String key:keys)
        {
            if(isJSON(js.getString(key)))
            {
                JSONObject js1=JSONObject.fromObject(js.getString(key));
                RedisSet(js1,js01);
            }
            js01.set(key,js.getString(key));
        }
    }
    @Override
    public JSONObject Innomind(String jsonStr)
    {
       Jedis jedis = new Jedis("localhost", 6379);
        JSONObject js=JSONObject.fromObject(jsonStr);
        RedisSet(js,js01);
        js01.close();
        return js;
    }

//测试数据
 {
     "jsonStr":"{\"ip\":\"\",\"address\":{\"city\":\"New York\",\"Zip\":\"10086\",\"address01\":{\"city01\":\"New York01\",\"Zip01\":\"10087777\"}}}"
 }

标签:jsonStr,String,JSONObject,redis,js,js01,json,key
From: https://blog.csdn.net/zyq2217330101/article/details/142846653

相关文章

  • 【C#】复杂数据结构和Json的相互转换
    数据结构定义//数据结构定义publicclassPeople{publicstringname;publicBaseInfobaseInfo;publicList<School>education;}publicclassBaseInfo{publicintage;publicboolgender;publicList<Connection>connection;}注意一......
  • Java 接口缓存(Redis + 注解)
      为了提升用户体验并优化那些因数据量庞大而导致响应缓慢的统计类接口,我们可以采用以下策略来实现接口数据的缓存机制:实现步骤:引入缓存机制:利用Redis作为缓存存储,因其速度快且支持高并发访问。前端请求处理:在前端请求到达后端之前,通过拦截器(Interceptor)进行处......
  • 模拟一个微服务架构项目来学习包括Nacos、EMQX、GateWay、RabbitMQ、Canal、Mybatis-P
    前言介绍下最近做的项目:为什么做这个项目?项目的核心用户目标是谁?面向新能源电车用户给目标用户提供了什么价值?方便快捷充电服务团队的作用?需求分析,概要设计,详细设计,开发,测试,部署,上线我的作用?1-2两个核心业务详细设计(业务流程,接口入参,接口出参,表结......
  • 图解Redis 04 | Set数据类型的原理及应用场景
    介绍Redis的Set类型是一个不允许重复元素的集合,元素存储的顺序不按照插入的顺序,因此属于无序集合。一个Set最多可以存储2^32-1个元素,这与数学中的集合概念类似。Set类型不仅支持增、删、改、查等操作,还支持多个Set之间的交集、并集和差集运算。内部实现Set类......
  • json-server的使用
    1.简介json-server可以帮助前端快速的mock数据,快捷方便2.安装可以通过npm或者yarn安装npmijson-server-g3.数据在项目的根目录下创建一个文件夹,名字随意,可以叫做db然后再db目录下新建一个index.json,在里面定义要模拟的数据例{"list":[{......
  • Redis的五种基本类型和业务场景和使用
    目录Redis是什么?Redis的特点依赖配置redis的配置类(用于格式转换,处理乱码)String(字符串)特点业务场景代码使用案例List(列表)特点业务场景代码使用案例Set(集合)特点业务场景代码使用案例Hash(哈希表)特点业务场景代码使用案例SortedSet(有序集合)特点业务场景......
  • Redis 5大数据类型
    这里说的数据类型是value的数据类型,key的类型都是字符串。5种数据类型:redis字符串(String)redis列表(List)redis集合(Set)redis哈希表(Hash)redis有序集合(Zset)哪里去获取redis常用数据类型操作命令:http://redis.cn/commands.html2.1、redis键(key)keys*:查看当前库所有的keyexis......
  • Python 处理 JSON 格式数据
    Author:ACatSmilingSince:2024-10-09需求:将文件中的JSON格式数据,指定Key的值替换。对于文件的整个文本为JSON格式的数据。示例:{'A':{'a':23.45,'b':56.78,'c':89.01}}Python代码:importjson#读取原始JSON数......
  • Redis 数据类型hash(哈希)
    目录1基本特性2主要操作命令 2.1设置和获取字段2.1.1 HSETkeyfieldvalue2.1.2 HGETkeyfield2.1.3 HMSETkeyfield1value1[field2value2...] 2.1.4 HMGETkeyfield1[field2...]2.2检查字段是否存在2.2.1 HEXISTSkeyfield2.3获取所有字段和......
  • 搭建Redis哨兵集群并使用RedisTemplate实现读写分离
    一、理论相关通过上篇博客:搭建Redis“主-从-从”模式集群并使用RedisTemplate实现读写分离,我们已经搭建好了Redis“主-从-从”模式集群并且实现读写分离,这里会出现几个问题:如果主库宕机了,我们就需要运行一个新主库,比如说把一个从库切换为主库,把它当成主库。这就会涉及到三个......