| package com.zt.common.utils; | 
|   | 
| 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) { | 
|         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 Object getArrJsonValueByPath(JSONObject pJSONObject, String[] path, String searchKey, String searchValue, String targetKey) { | 
|         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)) { | 
|                     return jsonObject.get(targetKey); | 
|                 } | 
|             } | 
|             return null; | 
|         } else { | 
|             JSONObject sJSONObject = pJSONObject.getJSONObject(path[0]); | 
|             path = ArrayUtils.remove(path, 0); | 
|             return getArrJsonValueByPath(sJSONObject, path, searchKey, searchValue, targetKey); | 
|         } | 
|     } | 
|   | 
|     public static boolean setJsonValueByPath(JSONObject pJSONObject, String[] path, Object value) { | 
|         if (path.length == 1) { | 
|             pJSONObject.put(path[0], value); | 
|             return true; | 
|         } else { | 
|             JSONObject sJSONObject = pJSONObject.getJSONObject(path[0]); | 
|             if (sJSONObject==null){ | 
|                 sJSONObject = new JSONObject("{}"); | 
|                 pJSONObject.put(path[0],sJSONObject); | 
|             } | 
|             path = ArrayUtils.remove(path, 0); | 
|             setJsonValueByPath(sJSONObject, path, value); | 
|         } | 
|         return false; | 
|     } | 
|   | 
|     public static Object getJsonValueByPath(JSONObject pJSONObject, String[] path) { | 
|         if (path.length == 1) { | 
|             return pJSONObject.get(path[0]); | 
|         } else { | 
|             JSONObject sJSONObject = pJSONObject.getJSONObject(path[0]); | 
|             if (sJSONObject==null) | 
|                 return null; | 
|             path = ArrayUtils.remove(path, 0); | 
|             return getJsonValueByPath(sJSONObject, path); | 
|         } | 
|     } | 
| } |