2012-04-22 8 views
0

私は非常に長いJSONで作業していません。私は以下のような反応があり、 "トピック"の詳細を呼び出す方法を理解するのには苦労しています。私はそれがJSONObjectだと思ったが、Androidのlogcatは私にJSONObject ["Topic"]が見つからないと言っている。これはJSONObjectではありません。これはJSONArrayではありません。それは何ですか?

[{"Id":1,"TopicId":1,"UserGuid":"C214ED74-07A7-409E-84FF-AF0457CF581A","Topic":{"Id":1,"AdminUserGuid":"C214ED74-07A7-409E-84FF-AF0457CF581A","Title":"Test Topic 1","AccessType":"public"}}] 

ご協力いただきまして誠にありがとうございます。

+0

これは配列であることを確かめてください。 – BoltClock

+0

[JSON documentation](http://www.json.org/)も参照してください。 – scessor

+0

迅速な対応をありがとうございます。 JSONArrayを呼び出すときにJSONObject ["Topic"]はJSONArrayではありません – alockrem

答えて

3

これはJSONObjectという名前のトピックであるそのうちの一つ一つの要素、複数のプロパティを持つJSONObject、とJSONArrayです:あなたのJSON文字列あなたは 構造をよりよく理解することができ、このようにインデントする

JSONArray posts = new JSONArray(myJsonString); 
JSONObject post = posts.getJSONObject(0); 
JSONObject topic = post.getJSONObject("Topic"); 
+0

これも私が思ったことです。 getInt( "Id")を呼び出すと動作します。 getJSONObject( "Topic")を呼び出すとJSONObject ["Topic"]が見つかりません。 – alockrem

+0

@alockrem私はこのオブジェクトを解析するために何をするべきかを追加しました – JRaymond

+0

私はどこかのキャラクターを持っていたと確信しています。あなたのコードを貼り付けるとうまくいきます。文字列名以外にも、私の元のコードはほとんど同じで、エラーが発生したと思います。ありがとうございました。 – alockrem

0

使用JSONLint 1つのオブジェクトに4つのオブジェクトがあり、そのうちの1つに4つの属性があるJSONArrayです。

+0

これは素晴らしいリソースです。ありがとうございました。 getJSONObject( "Id")の代わりにgetInt( "Id")を呼び出すことによって、 "Id"の値を取得しています。 「トピック」へのアクセスを許可するにはどうすればよいですか? – alockrem

関連する問題