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"
  }
]
}

所以基本上有了这个结构,我可以在我的应用程序中显示一些图像。现在我想获得不同的画廊,旁边有子画廊和图像。这可能是一种可能的结构:

这是图像快照

文件结构

我不知道如何在 JSON 中完成此操作(Array inside Array?),我不知道如何在 Android 中解析它。任何帮助将不胜感激。

4

2 回答 2

0

好的,让我先从 JSON 本身开始。它最后缺少一个结束 } (也许你只是忘了复制它)并且你没有一个'array in array',你有一个对象'data'和一个对象数组'ImageSetting'。

解析这个最简单的方法是使用 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

我认为你应该在 Array 中使用 Array。同样在您的示例中:

{
"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,您将在数组中获得 Array。& 如果它是一个数组,您可以将其视为文件夹和子文件夹。如果是图像。您可以直接使用图像在表格中显示。

我希望你能理解。如果有任何疑问,请告诉我...

于 2012-12-31T09:43:48.363 回答