我第一次玩android开发。我正在尝试制作一个简单的货币转换器应用程序。我正在处理的特定部分是使用所有可用货币填充微调框,而无需手动编写所有代码。我有一个json文件,如下所示:
{
"AED": "United Arab Emirates Dirham",
"AFN": "Afghan Afghani",
"ALL": "Albanian Lek",
"AMD": "Armenian Dram",
"ANG": "Netherlands Antillean Guilder",
"AOA": "Angolan Kwanza",
"ARS": "Argentine Peso",
"AUD": "Australian Dollar",
"AWG": "Aruban Florin",
...
}
我想一次读取该对象一种货币,以便我可以使用它来填充微调器。有点像:
/*PSEUDOCODE*/
spinner = (Spinner) findViewById(R.id.currencyTo);
List<String> list = new ArrayList<String>();
JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromUrl(url);
while (rates != null) {
rates = json.getString(first item in json);
list.add(rates);
...
我知道如何通过单独调用每个项目来完成它,例如rates = json.getString(“AED”)等等,但我不希望它像这样硬编码。我想单独解析每个货币项,然后将其放在微调器中。抓住下一个货币,将它放在微调器中,依此类推。任何帮助是极大的赞赏。
答案 0 :(得分:0)
是的,您可以遍历所有JSON元素。
试试这个:
final JSONParser jParser = new JSONParser();
final JSONObject jObject = jParser.getJSONFromUrl(url);
Iterator<?> keys = jObject.keys();
while(keys.hasNext()){
final String key = (String)keys.next();
final Object obj = jObject.get(key);
if(obj instanceof JSONObject){
final String rate = jObject.getString(key);
System.out.println(key + " => " + rate);
list.add(rate);
}
}