From 7abc95a191d2c1a9bb9ff8fd7fb05470a0d4e86b Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期五, 02 八月 2024 10:04:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 zt/common/src/main/java/com/zt/common/utils/JsonUtils2.java |   49 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 39 insertions(+), 10 deletions(-)

diff --git a/zt/common/src/main/java/com/zt/common/utils/JsonUtils2.java b/zt/common/src/main/java/com/zt/common/utils/JsonUtils2.java
index 91abaf9..d80e6ce 100644
--- a/zt/common/src/main/java/com/zt/common/utils/JsonUtils2.java
+++ b/zt/common/src/main/java/com/zt/common/utils/JsonUtils2.java
@@ -1,26 +1,55 @@
 package com.zt.common.utils;
 
+import cn.hutool.core.convert.Convert;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import org.apache.commons.lang3.ArrayUtils;
 
 public class JsonUtils2 {
 
-    public static boolean setArrJsonValueByPath(JSONObject pJSONObject, String[] path, String searchKey, String searchValue, String targetKey, Object value) {
+    /*    public static boolean setArrJsonValueByPath(JSONObject pJSONObject, String[] path, String searchKey, String searchValue, String targetKey, Object value) {
+            if (path.length == 1) {
+                JSONArray jsonArray = pJSONObject.getJSONArray(path[0]);
+                for (int i = 0; i < jsonArray.size(); i++
+                ) {
+                    JSONObject jsonObject = jsonArray.getJSONObject(i);
+                    if (jsonObject.get(searchKey).equals(searchValue)) {
+                        jsonObject.put(targetKey, value);
+                    }
+                }
+                return true;
+            } else {
+                JSONObject sJSONObject = pJSONObject.getJSONObject(path[0]);
+                path = ArrayUtils.remove(path, 0);
+                setArrJsonValueByPath(sJSONObject, path, searchKey, searchValue, targetKey, value);
+            }
+            return false;
+        }*/
+    public static boolean setArrJsonValueByPath(JSONObject pJSONObject, String[] path, String searchKey, String searchValue, String path2, Object value) {
+        return setArrJsonValueByPath(pJSONObject, path, searchKey, searchValue, path2.split("/"), value);
+
+    }
+
+    public static boolean setArrJsonValueByPath(JSONObject pJSONObject, String[] path, String searchKey, String searchValue, String[] path2, Object value) {
         if (path.length == 1) {
             JSONArray jsonArray = pJSONObject.getJSONArray(path[0]);
-            for (int i = 0; i < jsonArray.size(); i++
-            ) {
-                JSONObject jsonObject = jsonArray.getJSONObject(i);
-                if (jsonObject.get(searchKey).equals(searchValue)) {
-                    jsonObject.put(targetKey, value);
+            JSONObject targetJSONObject = null;
+            if (searchKey != null) {
+                for (int i = 0; i < jsonArray.size(); i++) {
+                    JSONObject jsonObject = jsonArray.getJSONObject(i);
+                    if (jsonObject.get(searchKey).equals(searchValue)) {
+                        targetJSONObject = jsonObject;
+                    }
                 }
+            } else {
+                targetJSONObject = jsonArray.getJSONObject(0);
             }
+            setJsonValueByPath(targetJSONObject, path2, value);
             return true;
         } else {
             JSONObject sJSONObject = pJSONObject.getJSONObject(path[0]);
             path = ArrayUtils.remove(path, 0);
-            setArrJsonValueByPath(sJSONObject, path, searchKey, searchValue, targetKey, value);
+            setArrJsonValueByPath(sJSONObject, path, searchKey, searchValue, path2, value);
         }
         return false;
     }
@@ -49,9 +78,9 @@
             return true;
         } else {
             JSONObject sJSONObject = pJSONObject.getJSONObject(path[0]);
-            if (sJSONObject==null){
+            if (sJSONObject == null) {
                 sJSONObject = new JSONObject("{}");
-                pJSONObject.put(path[0],sJSONObject);
+                pJSONObject.put(path[0], sJSONObject);
             }
             path = ArrayUtils.remove(path, 0);
             setJsonValueByPath(sJSONObject, path, value);
@@ -64,7 +93,7 @@
             return pJSONObject.get(path[0]);
         } else {
             JSONObject sJSONObject = pJSONObject.getJSONObject(path[0]);
-            if (sJSONObject==null)
+            if (sJSONObject == null)
                 return null;
             path = ArrayUtils.remove(path, 0);
             return getJsonValueByPath(sJSONObject, path);

--
Gitblit v1.9.1