我需要的只是“照片”阵列。我的JSON看起来像这样:
{
"photos": {
"page": 1,
"pages": "1000",
"perpage": 1,
"total": "1000",
"photo": [
{
"id": "44049202615",
"owner": "159796861@N07",
"secret": "cb8f476a4d",
"server": "1958",
"farm": 2,
"title": "Murugan",
"ispublic": 1,
"isfriend": 0,
"isfamily": 0
}
]
},
"stat": "ok"
}
我是Moshi/Retrofit的新手。我看到了this,但我还不太了解如何使它工作。我以为我可以快速又肮脏地做一些事情来获取所需的值,这样我就可以继续构建我的应用程序了(我将在稍后回过头来进行适当的实现)。
我快速又肮脏的想法是这样的:
data class GalleryItem(@Json(name = "title") val caption: String,
@Json(name = "id") val id: String,
@Json(name = "url_s") val url: String?)
data class Photo(@Json(name = "photo") val galleryItems: List<GalleryItem>)
data class Photos(@Json(name = "photos") val photo: Photo)
我以为我可以从我的api返回“照片”并获取图库项目。没有崩溃,但没有正确解析。我得到“照片”对象,但“照片”为空。
关于如何访问我需要的数据有任何想法吗?
最佳答案
不幸的是,@Json
注释gets ignored in Kotlin classes。解决方法(来自我刚才给出的链接)是改为使用@field:Json
。为您的数据类尝试类似的方法:
data class ResponseData(
val photos: Photos
)
data class Photos(
@field:Json(name = "photo") val galleryItems: List<GalleryItem>
)
data class GalleryItem(
val id: String,
val title: String
)