Java读取多层级JSON文件,也含有python读取JSon
Java读取多层级JSON文件,也含有python读取JSon
Java读取多层级JSON文件,但是无法把json所有层级的key拼接在一起
package useful;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import javax.json.Json;
import javax.json.JsonStructure;
import javax.json.JsonValue;
import javax.json.JsonObject;
import javax.json.JsonArray;
public class ReadFullJsonValue {
public static void main(String[] args) {
try {
// 创建JsonReader对象,读取JSON文件内容
JsonStructure jsonStructure = Json.createReader(new FileReader(“D://onboardingRequestsHK6.json”)).read();
// 遍历JsonStructure对象
//traverseJsonStructure(jsonStructure);
traverseJsonStructure1(jsonStructure,"");
// traverseJsonStructure2(jsonStructure);
readMap();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
private static void traverseJsonStructure(JsonStructure structure) {
if (structure instanceof JsonObject) {
JsonObject jsonObject = (JsonObject) structure;
// 遍历JsonObject的键值对
for (String key : jsonObject.keySet()) {
JsonValue value = jsonObject.get(key);
// 处理键值对
System.out.println(“Key: " + key);
// 递归遍历值
traverseJsonValue(value);
}
} else if (structure instanceof JsonArray) {
JsonArray jsonArray = (JsonArray) structure;
System.out.println(“chuxian jsonARRAY”);
// 遍历JsonArray的元素
for (JsonValue value : jsonArray) {
// 递归遍历元素
traverseJsonValue(value);
}
}
}
private static void traverseJsonValue(JsonValue value) {
if (value instanceof JsonObject || value instanceof JsonArray) {
// 继续递归遍历复杂类型值
traverseJsonStructure((JsonStructure) value);
} else {
// 处理其他类型的值
System.out.println(“Value: " + value.toString());
}
}
}
// import json
//
//
// # Python遍历json多层级key,输出json所有层级key和value值
// json_data = json.load(open(
// “data.json”, “r”, encoding=“utf-8”))
//
// def replace_params_for_json(json_data):
//
// result= {}
//
// def recursive_extract(d, prefix=””): #递归函数
// if isinstance(d, dict):
// for key, value in d.items():
// new_key = f"{prefix}.{key}" #创建新的键名
// recursive_extract(value, new_key) #调用递归
// elif isinstance(d,list): #如果的是列表
// for index, item in enumerate(d):
// new_key = f"{prefix}.[{index}]" #创建新的键名
// recursive_extract(item, new_key)#调用递归
// else: #如果是基本类型
// result[prefix] = d #将结果添加到字典中
// recursive_extract(json_data) # #调用递归
// return result
//
// result =replace_params_for_json(json_data)
// print(result)
//