-1
    public void HelloWord {
       for (int i = 0; i < 20; i++) {
             Log.d("Great");
       }
    }

上記のコードが機能しないのはなぜですか?値の名前を取得しようとしています誰かが問題がどこにあるか知っていますか?

org.json.JSONException:値...リンクのコンテンツ...org.json.JSON.typeMismatchatorg.json.JSONArray。

4

2 に答える 2

1

高速で効果的な JSON パーサーであるため、 GSON ライブラリを使用することを好みます。プロジェクトに追加したら、返されたデータを表すクラスを作成する必要があります。次に、単一の関数を呼び出してオブジェクトを作成できます。

gson.fromJson();

GSON の使用に関する非常に優れた記事がhttp://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.htmlにあります。例として Twitter も使用しています。

于 2012-04-11T18:29:41.280 に答える
0

JSON の仕組みを見逃していると思います。はすべて{}オブジェクトですが、[]は配列を指定します。したがって、Twitter フィードのルートは、JSONArray ではなく、JSONObject です。

このようなことをもっと試してください:

JSONObject obj = new JSONObject(mStringBuilder.toString());
JSONObject trends = obj.getJSONObject("trends");
JSONArray today = trends.getJSONArray("2012-04-10");
for (int i = 0; i < today.length(); i++) {
  JSONObject tag = today.getJSONObject(i);
  String name = tag.getString("name");
  // do whatever with name
}

はるかに簡単で、それがどのように機能するかがより明確になります。JSONObjects はディクショナリであり、キーと値の間の単純なマッピングを備えています。各オブジェクト ( {}) には複数のオブジェクトを含めることができ、配列 ( []) には単純な整数または複数のオブジェクトを含めることができます。

于 2012-04-11T18:04:46.067 に答える