0

データと呼ばれる HttpClient から返される文字列があります。

Data = {"result":[{"id":"2","contextID":"1","name":"Kitchen","image":"81"},
{"id":"1","contextID":"1","name":"Living Room","image":"18"},
{"id":"3","contextID":"1","name":"Toilet","image":"75"}]}

次に、このコードを実行しています:

resultArray = new JSONArray (data);

この JSONArray を返します。ただし、JSONException エラーが発生します。

JSONObject cannot be converted to JSONArray

確かにこれは JSONObject ではなく JSONArray ですか? それとも、JSONObjects の JSONObject ですか? 私はJSONにかなり慣れていないので、これらのインポートされた値を使用してループして新しい場所を作成したいと考えています。これを行う簡単または確立された方法はありますか?

どうもありがとう。

4

3 に答える 3

2

Dataは JSONObject であり、JSONObjectData["result"]を含む JSONArray です。

于 2013-02-15T21:00:29.600 に答える
1

内部に JSONObjects の JSONArray を持つ json オブジェクトです。{ } はオブジェクトを意味し、[] は配列を意味します。したがって、最上位の文字列を JSON オブジェクトとして取得し、結果パラメーターを配列として取得し、結果の各インデックスをオブジェクトとして取得します (これらのパラメーターは getString などを介して取得できます)。

于 2013-02-15T21:00:31.293 に答える
0

データは、実際には名前付きの「結果」JSONObjectを含むです。JSONArrayを取得したい場合JSONArrayは、次のことを行う必要があります。

JSONObject dataObj = new JSONObject(data);
JSONArray dataArr = dataObj.getJSONArray("result");

今後の参考として、JSON は初めてなので、{} 波括弧内のデータは JSONObject であり、[] 波括弧内のデータは JSONArray です。配列とオブジェクトは互いに入れ子にすることができ、読みにくい場合があります。読むのに助けが必要な場合は、データをフォーマットすることをお勧めします。私は個人的にhttp://jsonformatter.curiousconcept.com/を使用して、データのフォーマットと検証を行っています。私はサイトとは一切関係ありません。本当に便利だと思います。

于 2013-02-15T21:14:21.380 に答える