2011-10-20 14 views
2

JSONをAndroidに大いに依存するiPhoneアプリケーションの移植に取り組んでいます。 解析する必要がある応答の1つは、メイン画面を構築するために使用されます。これに対するJSONレスポンスには、Icons、Header、Playerの3種類のオブジェクトが含まれています。これらはすべてオブジェクトHomeに含まれています。 アイコンとプレーヤーの両方にアイテムの配列が含まれている場合、ヘッダーは単なるアイテムに過ぎません。Android GSON:複数の異なるオブジェクトを同じレスポンスから解析する

今私はまだJSONに関しては初心者ですが、この応答をどのように解析するべきかはわかりません。したがって、問題に取り組む前に正しいアイデアがあるかどうかを知りたいと思います。

私の考えは、ホーム、アイコン、ヘッダー、プレーヤーの4つのクラスを作成することです。 ホームには、IconsとPlayerの両方の配列と、Headerのオブジェクトが含まれます。 これを行う正しい方法であるかどうかはわかりません。

続くような質問でJSON応答は次のとおりです。(原因応答の大きさにいくつかのオブジェクトを削除)私は正しい方向にいる場合

{ 
    "Home": { 
    "Icon": [ 
     { 
     "ScreenID": 533, 
     "ScreenIndex": 1, 
     "IconName": "mainIcon_news", 
     "Title": "News", 
     "FK_ModuleID": 6, 
     "FormID": 567, 
     "ModName": "News", 
     "MediaType": "", 
     "New_Icon": 0 
     }, 
     { 
     "ScreenID": 528, 
     "ScreenIndex": 2, 
     "IconName": "mainIcon_music", 
     "Title": "Music", 
     "FK_ModuleID": 3, 
     "FormID": 562, 
     "ModName": "Media", 
     "MediaType": "Music", 
     "New_Icon": 0 
     } 
    ], 
    "Header": [ 
     { 
     "ModHomeRotationID": 183, 
     "image_url": "*****/Media/68/1216_5.jpg", 
     "flg_RotationEnabled": false, 
     "flg_RotateOnlyOnReturn": true, 
     "flg_RotationRandomize": false, 
     "flg_RotationDelayMS": 5000, 
     "flg_RotationDelayFadeMS": 3000, 
     "HomeRotationIndex": null 
     } 
    ], 
    "Player": [ 
     { 
     "MediaID": 1219, 
     "Track_Name": "***", 
     "song_url": "*****/Media/68/1219.mp3", 
     "song_remote_url": null, 
     "FileSize": 4700502 
     }, 
     { 
     "MediaID": 1220, 
     "Track_Name": "**** ", 
     "song_url": "*****/Media/68/1220.mp3", 
     "song_remote_url": null, 
     "FileSize": 4350222 
     } 
    ] 
    } 
} 

誰かが私に言うことができる、そうでない場合、どのような私は代わりにやっているはずですか? 私は言及する必要があります、私は現時点でJSON応答を解析するためにGSONを使用しています。

事前

+0

私の投稿をチェックしましたか?何か質問がありますか? – Venky

+0

申し訳ありませんが私はまだ答えなかった、私は昼食のために出かけていた。 私はそれらを確認しました。私はここからそれを解決することができると思います。 2番目の例は、レスポンスの内容の中で私の問題とほぼ同じですので、私はそれを使って自分の問題を整理することができます。ありがとう! –

答えて

1

に感謝はい、あなたは4つのクラスを作成し、そのクラス名内の値を初期化する必要があるために、右必要がある。..

JSONLintを使用してJSONを検証します。

そして、これを試してくださいサンプルParsing JSON using GSONOne More

関連する問題