詳解springboot如何更新json串里面的內(nèi)容
更新時間:2023年10月12日 09:07:46 作者:潘小菲就是我昂
這篇文章主要為大家介紹了springboot 如何更新json串里面的內(nèi)容,文中有詳細的解決方案供大家參考,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
我的需求是這樣的
- 如果新字符串中的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字符串轉(zhuǎn)換為JSONObject
JSONObject originalJsonObject = JSON.parseObject(oldJsonString);
JSONObject newJsonObject = JSON.parseObject(newJsonString);
// 更新原始JSON對象中的對應鍵值對
updateJsonObject(originalJsonObject, newJsonObject);
// 將更新后的JSONObject轉(zhuǎn)換回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);
}
}
}
}結(jié)果:

{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串里面的內(nèi)容的文章就介紹到這了,更多相關springboot更新json串內(nèi)容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java顯示當前運行時的參數(shù)(java運行參數(shù))
這篇文章主要介紹了java顯示當前運行時參數(shù)的示例(java運行參數(shù)),需要的朋友可以參考下2014-04-04
SpringBoot對接twilio實現(xiàn)郵件信息發(fā)送功能
這篇文章主要為大家詳細介紹了SpringBoot如何對接twilio實現(xiàn)郵件信息發(fā)送功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2025-03-03
Spring Boot中的SpringSecurity基礎教程
Spring Security是一個功能強大且高度可定制的身份驗證和訪問控制框架。它實際上是保護基于spring的應用程序的標準Spring Security是一個框架,側(cè)重于為Java應用程序提供身份驗證和授權,這篇文章主要介紹了Spring Boot中的SpringSecurity學習,需要的朋友可以參考下2023-01-01
mybatis-config.xml文件中的mappers標簽使用
在MyBatis配置中,<mapper>標簽關鍵用于指定SQL?Mapper的XML文件路徑,主要有三種指定方式:resource、url和class,Resource方式從類的根路徑開始,適合放在項目內(nèi)部保障移植性,URL方式指定絕對路徑,移植性差,適用于外部路徑2024-10-10
IntelliJ IDEA安裝目錄和設置目錄的說明(IntelliJ IDEA快速入門)
這篇文章主要介紹了IntelliJ IDEA安裝目錄和設置目錄的說明(IntelliJ IDEA快速入門),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04

