多层嵌套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\"}}}"
 }
相关推荐
iナナ18 小时前
初识JVM
java·jvm
m0_5704664118 小时前
代码随想录算法训练营第二十八天 | 买卖股票的最佳实际、跳跃游戏、K次取反后最大化的数组和
java·开发语言·算法
酷ku的森19 小时前
Redis中的hash数据类型
数据库·redis·哈希算法
ST.J19 小时前
swing笔记
java·笔记
菩提树下的凡夫19 小时前
瑞芯微RV1126目标识别算法Yolov8的部署应用
java·算法·yolo
Arva .19 小时前
Redis
数据库·redis·缓存
爱隐身的官人19 小时前
新后端漏洞(上)- Java RMI Registry反序列化漏洞
java·反序列化漏洞
叫我阿柒啊20 小时前
从Java全栈到前端框架:一次真实的面试对话与技术解析
java·javascript·typescript·vue·springboot·react·前端开发
博一波20 小时前
Redis 集群:连锁银行的 “多网点智能协作系统”
数据库·redis·缓存
晚安里20 小时前
Spring 框架(IoC、AOP、Spring Boot) 的必会知识点汇总
java·spring boot·spring