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