public static void main(String[] args) {
json = "{\"data\":{\"subList\":[{\"materialClass\":23068302752852482},{\"materialClass\":23068302752852481}]}}";
System.out.println(json);
Object object = JSON.parse(json);
JSONObject newJSONObject = new JSONObject();
String selectPath = "$.data.subList.materialClass";
String newPath = "$.data.subList.materialClass";
jsonReplaceMapKey(object, newJSONObject, selectPath, newPath);
System.out.println(newJSONObject.toJSONString());
}
private static void jsonReplaceMapKey(Object object, JSONObject newJSONObject, String selectPath, String newPath) {
Object newObject = JSONPath.compile(selectPath).eval(object);
// 构建插入对象
if (newObject instanceof JSONArray) {
JSONArray array = (JSONArray) newObject;
List<Map<String, Object>> maps = new ArrayList<>();
String[] strings = newPath.split("\\.");
if (strings.length > 0) {
array.forEach(c -> {
Map<String, Object> map = new HashMap<>();
map.put(strings[strings.length - 1], c);
maps.add(map);
});
newPath = newPath.substring(0, newPath.lastIndexOf("."));
}
newObject = maps;
}
JSONPath.set(newJSONObject, newPath, newObject);
}