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

1、连接redis

复制代码
Jedis jedis = new Jedis("localhost", 6379);

2、将字符串转为json格式

复制代码
JSONObject js=JSONObject.fromObject(jsonStr);

3、对json格式进行解析

4、将json写入redis

java 复制代码
 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格式

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

6、关闭连接

java 复制代码
redis.close;

7、关闭连接

java 复制代码
return ture;
 
return false

全部代码

java 复制代码
    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\"}}}"
 }
相关推荐
ん贤6 分钟前
2023第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(真题&题解)(C++/Java题解)
java·c语言·数据结构·c++·算法·蓝桥杯
inxunoffice6 分钟前
批量修改记事本文本文件编码,可以解决文本文件乱码问题
json
在京奋斗者2 小时前
spring boot自动装配原理
java·spring boot·spring
Amd7944 小时前
FastAPI中Pydantic异步分布式唯一性校验
redis·fastapi·分布式锁·多级缓存·pydantic·唯一性校验·异步校验
明天不下雨(牛客同名)5 小时前
为什么 ThreadLocalMap 的 key 是弱引用 value是强引用
java·jvm·算法
多多*5 小时前
Java设计模式 简单工厂模式 工厂方法模式 抽象工厂模式 模版工厂模式 模式对比
java·linux·运维·服务器·stm32·单片机·嵌入式硬件
胡图蛋.7 小时前
Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
java·spring boot·后端
J不A秃V头A7 小时前
Redis批量操作详解
开发语言·redis
Kaede67 小时前
怎么安装JSON服务器?JSON服务器最新安装教程
运维·服务器·json