多层嵌套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\"}}}"
 }
相关推荐
晚安code1 小时前
RocketMQ 顺序消费实战:批量接口加 Redis Pipeline同步数据
redis·rocketmq
Zane19942 小时前
CAS 与原子类:Java 如何实现无锁编程
java·后端
TunerT_TQ2 小时前
【智能体安全治理|专栏第9期】从“一堆规则”到“数字宪法”:智能体治理的下一个阶段
java·开发语言·安全·开源治理·大模型安全·ai基础设施·智能体安全
legendary_bruce2 小时前
RAG知识库进阶-1
java·aigc
必须会一定会2 小时前
大模型手搓文件对比工具(6):差异不用再手选
java·人工智能·ai编程
yio_yin2 小时前
MyBatis
java·前端·mybatis
程序员-Benothing2 小时前
Java ForkJoinPool 详解:从分治思想到高性能并行计算
java·开发语言·后端·面试·职场和发展
上海安当技术3 小时前
单点登录 SSO 怎么选协议?SAML 2.0 / OAuth 2.0 / OIDC / CAS 对比与 ERP、OA、CRM 接入实战
java·开发语言
mifengxing3 小时前
Java集合与泛型
java·算法·复习笔记
不才不才不不才3 小时前
Spring 源码系列(14): JDK 动态代理 vs CGLIB,以及拦截器责任链
java·开发语言·spring