首页 > 解决方案 > 如何将符号列表响应从 fixer.io 转换为 json arraylist?(如何将 JSON 键值对转换为 JSON Array)

问题描述

我想用currencyNameand显示货币列表currencyCode,但得到像这样的响应

{
  "success": true,
  "symbols": {
    "AED": "United Arab Emirates Dirham",
    "AFN": "Afghan Afghani"
  }
}

以及如何将其转换为,

{
  "success": true,
  "symbols": [{
      "code": "AED",
      "name": "United Arab Emirates Dirham"
    },
    {
      "code": "AFN",
      "name": "Afghan Afghani"
    }
  ]
}   

我想在 Android 应用程序中显示列表。

标签: androidjsonarraylistgsonretrofit

解决方案


试试这个方法:

JSONObject resultObject = new JSONObject();
        try {
        resultObject.put("success",true);
        JSONArray jsonArray= new JSONArray();


            JSONObject jsonObject=new JSONObject(yourJsonString);

            JSONObject jsymbol= jsonObject.getJSONObject("symbols");
            Iterator<String> iter = jsymbol.keys(); //This should be the iterator you want.
            while(iter.hasNext()){
                String key = iter.next();
                String value = (String) jsymbol.get(key);

                JSONObject jsonObject1=new JSONObject();
                jsonObject1.put("code",key);
                jsonObject1.put("name",value);
                jsonArray.put(jsonObject1);

            }

            resultObject.put("symbols",jsonArray);//This will give you result you want


        } catch (JSONException e) {
            e.printStackTrace();
        }

推荐阅读