0

私は次のJSON構造を持っています:

{
"data": {
"ImageSetting": [
  {
    "image_name": "Image 1",
    "image_small": "https:\/\/d2vx3xrdmu9.cloudfront.net\/d98b276a10f874a67e87edcbe0bfbd2414b62c625f7af6f4c5cc7819259709d3ab39.jpeg",
    "image_big": "https:\/\/d2vx3xrdmu9.cloudfront.net\/8d580953e8a48c90a8ea3219fd526aa5cb5ac4302161a7c0ba24af6f2be65a233346.jpeg"
  },
  {
    "image_name": "Image 2",
    "image_small": "https:\/\/d2vx3xrdmu9.cloudfront.net\/7ddc15916bd7a8733847c2e9e68202ba0764a969125ebaf862b7ea34d7bac7171e21.jpeg",
    "image_big": "https:\/\/d2vx3xrd14cmu9.cloudfront.net\/1799ed1b6eebf9eb8d1b92de04e8468bc3a7f6ab427863b1e859ds67f3fb4a786dd2.jpeg"
  },
  {
    "image_name": "Image3",
    "image_small": "https:\/\/d2vx3xrdmu9.cloudfront.net\/b93073d02ed5b0d58c99ddea739c72f6df303a47d4fb7e16829fe61f7c62547b6e3.jpeg",
    "image_big": "https:\/\/d2vx3xrdmu9.cloudfront.net\/d1e030713f6a0214223f770fe0e6bd9200a2d2ca8da94acde2419064164a1e83f49.jpeg"
  }
]
}

したがって、基本的にこの構造を使用すると、アプリにいくつかの画像を表示できます。次に、サブギャラリーとその横にある画像を含むさまざまなギャラリーを取得したいと思います。これは1つの可能な構造である可能性があります。

これが画像のスナップショットです

FileStructure

これをJSON(配列内の配列?)で実行する方法がわかりません。また、Androidでこれを解析する方法もわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

0

まず、JSON 自体から始めましょう。末尾に } がありません (単にコピーするのを忘れただけかもしれません)。また、'array in array' がなく、オブジェクト 'ImageSetting' の配列を持つオブジェクト 'data' があります。

これを解析する最も簡単な方法は GSON を使用することです。GSON を使用すると、いくつかの注釈を追加するだけでオブジェクトに直接キャストできます。

基本的には、2 つの単純なクラスが必要です。

public class data{

@SerializedName("ImageSetting")
public Collection<ImageSetting> imageSettings;

}

public class ImageSetting{

@SerializedName("image_name")
public String image_name;

@SerializedName("image_small")
public String image_small;

@SerializedName("image_big")
public String image_big;

}

次に、GSON にマッピングを任せるだけです。

Data data = gson.fromJson(jsonString, Data.class);

GSON lib/jar はhttp://code.google.com/p/google-gson/から入手できます。

于 2012-12-31T09:43:32.310 に答える
0

配列内で配列を使用する必要があると思います。同様にあなたの例では:

{
"data": {
"ImageSetting": [
  {
    "image_name": "Image 1",
    "image_small": "https:\/\/d2vx3xrdmu9.cloudfront.net\/d98b276a10f874a67e87edcbe0bfbd2414b62c625f7af6f4c5cc7819259709d3ab39.jpeg",
    "image_big": "https:\/\/d2vx3xrdmu9.cloudfront.net\/8d580953e8a48c90a8ea3219fd526aa5cb5ac4302161a7c0ba24af6f2be65a233346.jpeg"
  },
  [{
    "image_name": "Image 2",
    "image_small": "https:\/\/d2vx3xrdmu9.cloudfront.net\/7ddc15916bd7a8733847c2e9e68202ba0764a969125ebaf862b7ea34d7bac7171e21.jpeg",
    "image_big": "https:\/\/d2vx3xrd14cmu9.cloudfront.net\/1799ed1b6eebf9eb8d1b92de04e8468bc3a7f6ab427863b1e859ds67f3fb4a786dd2.jpeg"
  },{
    "image_name": "Image3",
    "image_small": "https:\/\/d2vx3xrdmu9.cloudfront.net\/b93073d02ed5b0d58c99ddea739c72f6df303a47d4fb7e16829fe61f7c62547b6e3.jpeg",
    "image_big": "https:\/\/d2vx3xrdmu9.cloudfront.net\/d1e030713f6a0214223f770fe0e6bd9200a2d2ca8da94acde2419064164a1e83f49.jpeg"
  }]

]
}

...というように、基本要素 (画像) に到達するまで、サブフォルダーごとに続けます。この場合、JSON 全体を解析すると、配列内の配列が得られます。&配列の場合は、フォルダーとサブフォルダーのように扱うことができます。イメージだと。画像を直接使用して表に表示できます。

ご理解いただけたと思います。質問があれば教えてください...

于 2012-12-31T09:43:48.363 に答える