私は応答としてWebサーバーから受け取ったJSON文字列を解析しようとしていますが、私は奇妙な問題があります。私のjsonでは、私はいくつかのJSONObjects
を持っています。私は彼らの名前になるものが決してわからず、どれくらいの数に応じてそれらを循環させるべきですか。keys
しかし、問題は、私が使用しているコードでは、他の値もあることがわかっていても毎回同じ値を得ていることです。ここでAndroidのJSONパーサーが毎回同じ値を取得しています
は、私が使用しているタラです:
JSONObject json = (JSONObject) new JSONTokener(jsonBuffer).nextValue();
JSONObject country = json.getJSONObject(String.valueOf(json.keys().next()));
Iterator<Object> keys = json.keys();
while (keys.hasNext()) {
String countryName = country.getString("country_name");
Log.e("","country_name: "+countryName);
String data = country.getString("data");
Log.e("","data : "+data);
}
、ここでは私のJSONは次のようになります。
"AZ": {
"country_name": "Azerbaijan",
"data": {
"181261": {
"time_published": "2012-04-04 15:55:29",
"title": "Azerbaijan, Turkey not to change stakes in TANAP",
"body": null
},
"181260": {
"time_published": "2012-04-04 15:53:10",
"title": "SOCAR mulls acquisition of Swiss refinery",
},
"181061": {
"time_published": "2012-04-03 05:53:00",
"title": "Azerbaijan, Lithuania mull LNG terminal investment",
},
// and so on....
}
}, // and it keeps going on
任意のアイデア私のjsonParserのように見えるべきか?
あなたはいつも同じキーにアクセスしています: 'country.getString(" country_name ")'他に何がありますか?また、私は 'keys.hasNext()'がイテレータを実際に進めないと仮定します。 –
私は 'country_name'を含む50個のJSONObjectsを持っていますが、これはまさに最初の例です。 –
Mmmh ...まあ、あなたは無限のwhileループを持っていますが、実際には新しい値を 'country'に割り当てることは決してありません。すべてのキーを繰り返し処理し、そのキーの国オブジェクトを取得し、その値にアクセスする必要があります。現在、最初の国要素を取得しています。キーを取得し、イテレータにキーが含まれているかどうかを確認してください。しかし、イテレータを進めているわけではありません。 –