多层嵌套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\"}}}"
 }
相关推荐
bing_1587 分钟前
Java 中求两个 List集合的交集元素
java·list
工业互联网专业26 分钟前
基于springboot+vue的高校社团管理系统的设计与实现
java·vue.js·spring boot·毕业设计·源码·课程设计
九圣残炎28 分钟前
【ElasticSearch】 Java API Client 7.17文档
java·elasticsearch·搜索引擎
Y编程小白1 小时前
Redis可视化工具--RedisDesktopManager的安装
数据库·redis·缓存
m0_748251521 小时前
Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat
java·ubuntu·centos
Bro_cat2 小时前
深入浅出JSON:数据交换的轻量级解决方案
java·ajax·java-ee·json
等一场春雨2 小时前
Java设计模式 五 建造者模式 (Builder Pattern)
java·设计模式·建造者模式
hunzi_12 小时前
Java和PHP开发的商城系统区别
java·php
V+zmm101342 小时前
教育培训微信小程序ssm+论文源码调试讲解
java·数据库·微信小程序·小程序·毕业设计
十二同学啊2 小时前
Spring Boot 中的 InitializingBean:Bean 初始化背后的故事
java·spring boot·后端