|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|