详解springboot如何更新json串里面的内容

 更新时间:2023年10月12日 09:07:46   作者:潘小菲就是我昂  
这篇文章主要为大家介绍了springboot 如何更新json串里面的内容,文中有详细的解决方案供大家参考,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

我的需求是这样的

  • 如果新字符串中的key在原字符串中存在,则更新原字符串的对应key的value。
  • 如果新字符串中的key在原字符串中不存在,则将新字符串中的key和value添加到原字符串中。
  • 如果原字符串中存在,新字符串中不存在的key,则不处理

话不多说 上代码

public class UpdateColumnJsonUtils {
    public static void main(String[] args) {
        String jsonString = "{\n" +
                "    \"scriptResult\": {\n" +
                "        \"loan_app_count\": 3,\n" +
                "        \"app_num_ratio_3\": 0.8,\n" +
                "        \"gender_data\": {\n" +
                "            \"a\":\"1\",\n" +
                "            \"c\":\"3\"\n" +
                "        }\n" +
                "    }\n" +
                "}";
        String newJsonString = "{\n" +
                "    \"scriptResult\": {\n" +
                "        \"loan_app_count\": 5,\n" +
                "        \"app_num_ratio_4\": 1,\n" +
                "        \"gender_data\": {\n" +
                "            \"a\":\"1\",\n" +
                "            \"b\":\"2\",\n" +
                "            \"d\":\"4\",\n" +
                "            \"e\":\"d5\"\n" +
                "        }\n" +
                "    }\n" +
                "}";
            System.out.println(getColumnJson(jsonString,newJsonString));
    }
    public static Map<String,Object> getColumnJson(String oldJsonString,String newJsonString) {
        // 将原始的JSON字符串转换为JSONObject
        JSONObject originalJsonObject = JSON.parseObject(oldJsonString);
        JSONObject newJsonObject = JSON.parseObject(newJsonString);
        // 更新原始JSON对象中的对应键值对
        updateJsonObject(originalJsonObject, newJsonObject);
        // 将更新后的JSONObject转换回JSON字符串
        Map<String,Object> map = originalJsonObject.getInnerMap();
        return map;
    }
    private static void updateJsonObject(JSONObject originalObject, JSONObject newObject) {
        for (String key : newObject.keySet()) {
            Object newValue = newObject.get(key);
            Object oldValue = originalObject.get(key);
            if (oldValue instanceof JSONObject && newValue instanceof JSONObject) {
                // 如果新旧值都是JSONObject,则递归更新嵌套的JSON对象
                updateJsonObject((JSONObject) oldValue, (JSONObject) newValue);
            } else {
                // 否则,直接更新对应键的值
                originalObject.put(key, newValue);
            }
        }
    }
}

结果:

{scriptResult={"loan_app_count":5,"gender_data":{"a":"1","b":"2","c":"3","d":"4","e":"d5"},"app_num_ratio_4":1,"app_num_ratio_3":0.8}}

到此这篇关于详解springboot如何更新json串里面的内容的文章就介绍到这了,更多相关springboot更新json串内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java编程实现基于图的深度优先搜索和广度优先搜索完整代码

    Java编程实现基于图的深度优先搜索和广度优先搜索完整代码

    这篇文章主要介绍了Java编程实现基于图的深度优先搜索和广度优先搜索完整代码,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • springboot的logging.group日志分组方法源码流程解析

    springboot的logging.group日志分组方法源码流程解析

    这篇文章主要为大家介绍了springboot的logging.group日志分组方法源码流程解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 详解Java注解知识点

    详解Java注解知识点

    这篇文章主要介绍了详解Java注解知识点,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java自动生成趋势比对数据的方法分享

    Java自动生成趋势比对数据的方法分享

    这篇文章主要和大家分享了一种Java自动生成趋势比对数据的方法设计及实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-04-04
  • Java国际化简介_动力节点Java学院整理

    Java国际化简介_动力节点Java学院整理

    这篇文章主要为大家简单介绍了Java国际化的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • JAVA使用HtmlUnit爬虫工具模拟登陆CSDN案例

    JAVA使用HtmlUnit爬虫工具模拟登陆CSDN案例

    今天小编就为大家分享一篇关于JAVA使用HtmlUnit爬虫工具模拟登陆CSDN案例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 详解SpringBoot是如何保证接口安全的

    详解SpringBoot是如何保证接口安全的

    对于互联网来说,只要你系统的接口会暴露在外网,就避免不了接口安全问题。 如果你的接口在外网裸奔,只要让黑客知道接口的地址和参数就可以调用,那简直就是灾难。这篇文章主要介绍了SpringBoot保证接口安全的方法,需要的可以参考一下
    2023-02-02
  • Java批量修改文件名的实例代码

    Java批量修改文件名的实例代码

    几天前在163公开课上下了一些mp4视频文件。发现课程名和文件名不对应,想到编个程序批量修改。先分析网页源代码将课程名和文件名一一对应,存储在一个文件里,然后使用Java读取该文件进而修改文件名。
    2013-04-04
  • Spring Boot2解决idea console 控制台输出乱码的问题

    Spring Boot2解决idea console 控制台输出乱码的问题

    这篇文章主要介绍了Spring Boot2解决idea console 控制台输出乱码的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • SpringMVC 中文乱码的解决方案

    SpringMVC 中文乱码的解决方案

    这篇文章主要介绍了SpringMVC 中文乱码的解决方案,帮助大家更好的理解和学习使用SpringMVC,感兴趣的朋友可以了解下
    2021-04-04

最新评论