0

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",
...
}

そのオブジェクトを一度に 1 通貨ずつ読み取りたいので、それを使用してスピナーにデータを入力できます。次のようなもの:

/*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);
...

rate = json.getString("AED") など、各項目を個別に呼び出す方法は知っていますが、そのようにハードコーディングしたくありません。各通貨アイテムを個別に解析してから、スピナーに配置します。次の通貨をつかみ、スピナーに置きます。どんな助けでも大歓迎です。

4

1 に答える 1

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);
    }
}
于 2013-03-21T01:01:42.623 に答える