2012-12-31 51 views
0

我有以下JSON结构:图片廊与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" 
    } 
] 
} 

所以这种结构基本上我可以告诉我的应用程序的一些图片。现在我想获得不同的画廊和旁边的画廊和图像。这可能是一个可能的结构:

这里是图像快照

FileStructure

我不知道如何得到这个JSON做(?阵内阵)和我不不知道如何在Android中进行解析。任何帮助将不胜感激。

+0

发表第二个json字符串,你想解析 –

+0

我还没有第二个,因为我不知道如何使用不同的数组结构:S – user754730

+0

去通过此链接: - [Json解析参考](http://www.androidhive.info/2012/01/android-json-parsing-tutorial/)在这里你有完美的例子在Android的JSON解析。 – abhishek

回答

0

Oke让我首先从JSON开始。 它在结尾处缺少结束符}(也许你只是忘记了复制它),并且没有'数组'数组,你有一个包含对象数组''ImageSetting'的对象'data'。

最简单的解析方法就是使用GSON,通过添加一些注释就可以将其直接转换为对象。

基本上你只需要两个简单的类:

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/

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,你就会在数组中获得数组。 &如果它是一个数组,你可以把它看作像文件夹&子文件夹。如果它是一个图像。您可以直接使用图像在表格中显示。

我希望你能理解它。让我知道是否有任何查询...

+0

但是Array里面的这个Array怎么能有一个像“Folder 1”这样的名字和更多的Image对象? – user754730

+0

在这种情况下..你需要检查对象是否是一个数组,然后把文件夹名称的“名称”键和内容的“数据”键......它只是一个逻辑部分取决于数据你想放入它。 – iCreative

+0

也许我不清楚我需要做什么。我想要在“ImageSetting”数组和“Image 1”,“Image 2”和“Image 3”旁边的某个对象中获取Array“Folder 1”... – user754730