2010-11-29 4 views
4

私はJSONArrayを持っており、twitterのようなストリームに値を設定する必要があるため、値を指定してhashmapを取得する必要があります。 あなたは何を提案しますか?JSONArrayからHashMap

+0

ああ、ええ、私はforgott。 申し訳ありません:) – Fabian

答えて

11
HashMap<String, String> pairs = new HashMap<String, String>(); 
for (int i = 0; i < myArray.length(); i++) { 
    JSONObject j = myArray.optJSONObject(i); 
    Iterator it = j.keys(); 
    while (it.hasNext()) { 
     String n = it.next(); 
     pairs.put(n, j.getString(n)); 
    } 
} 

何かがそうです。

+1

ありがとう!これは私の状況のた​​めに働いた。 'pairs.add ...'を 'pairs.put ... 'に置き換えるだけで編集できます。 – FilmiHero

+0

私は、JSONObjectのj、Iterator itを "forループの外側に配置することを提案したいと思います。なぜなら、多数のJSONObjectを扱わなければならないので、スタックがオーバーフローしてプログラムが遅くなるからです。 –

0

JsonArraysにはIteratorを使用できます。またはこの方法で使用してください。

例: JSON

{ 
........ 
........ 

"FARE":[ //JSON Array 
    { 
    "REG_ID":3, 
    "PACKAGE_ID":1, 
    "MODEL_ID":9, 
    "MIN_HOUR":0 
    ....... 
    ....... 
    ....... 
    } 
     ] 
} 
HashMap<String, String> mMap= new HashMap<>(); 
for (int i = 0; i < myArray.length(); i++) { 

    JSONObject j = myArray.optJSONObject(i); 
    mMap.put("KEY1", j.getString("REG_ID")); 
    mMap.put("KEY2", j.getString("PACKAGE_ID")); 
    ............ 
    ............ 
} 

ノート:より良いコーディングを使用するためにIterator

関連する問題