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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值