首页 > 解决方案 > 如何遍历复杂的 JSON 并放入 Map?

问题描述

我尝试了几天来完成这项工作。但不能。

我想要的是遍历任何给定的 JSON 并将键和值对放入地图中。作为示例,请考虑此 JSON

 String test = {
   "RechargeRequest":{
      "RechargeSerialNo":"2645",
      "RechargeChannelID":"3",
      "RechargeObj":{
         "SubAccessCode":{
            "PrimaryIdentity":"763500001"
         }
      },
      "RechargeInfo":{
         "CashPayment":[
            {
               "Amount":"30"
            }
         ]
      }
   }
}

到目前为止我所尝试的

JSONObject jsonObj = new JSONObject(test);
    Iterator<String> keys = jsonObj.keys();
    Map<String,String> map = new HashMap<>();
    while(keys.hasNext()) {
        String key = keys.next();
        if (jsonObj.get(key) instanceof JSONObject) {

        }else if(jsonObj.get(key) instanceof  JSONArray){

        }else{

        }
    }

地图值应类似于 ("RechargeChannelID","3") ("Amount":"30")

有人可以帮我吗?

谢谢,

标签: javajsontree-traversal

解决方案


如果我理解正确,您希望将 json 文件扁平化为一层,然后将其映射到键和值对,请查看以下链接: 如何将 JSON 反序列化为扁平的、类似 Map 的结构?


推荐阅读