目录

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)

//