多层嵌套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\"}}}"
 }
相关推荐
岁忧43 分钟前
(LeetCode 面试经典 150 题 ) 11. 盛最多水的容器 (贪心+双指针)
java·c++·算法·leetcode·面试·go
CJi0NG1 小时前
【自用】JavaSE--算法、正则表达式、异常
java
Hellyc1 小时前
用户查询优惠券之缓存击穿
java·redis·缓存
今天又在摸鱼2 小时前
Maven
java·maven
老马啸西风2 小时前
maven 发布到中央仓库常用脚本-02
java·maven
代码的余温2 小时前
MyBatis集成Logback日志全攻略
java·tomcat·mybatis·logback
一只叫煤球的猫3 小时前
【🤣离谱整活】我写了一篇程序员掉进 Java 异世界的短篇小说
java·后端·程序员
斐波娜娜3 小时前
Maven详解
java·开发语言·maven
Bug退退退1233 小时前
RabbitMQ 高级特性之事务
java·分布式·spring·rabbitmq
程序员秘密基地3 小时前
基于html,css,vue,vscode,idea,,java,springboot,mysql数据库,在线旅游,景点管理系统
java·spring boot·mysql·spring·web3