API 响应结构的数据 class?
Data class for API response structure?
我正在使用维基百科API,其响应结构如下
{
"batchcomplete": "",
"continue": {
"gpsoffset": 10,
"continue": "gpsoffset||"
},
"query": {
"pages": {
"27667": {
"pageid": 27667,
"ns": 0,
"title": "Space",
"index": 1,
"thumbnail": {
"source": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/3D_coordinate_system.svg/200px-3D_coordinate_system.svg.png",
"width": 200,
"height": 200
}
},
"28189": {
"pageid": 28189,
"ns": 0,
"title": "Space Shuttle",
"index": 8,
"thumbnail": {
"source": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/STS120LaunchHiRes-edit1.jpg/128px-STS120LaunchHiRes-edit1.jpg",
"width": 128,
"height": 200
}
},
"28758": {
"pageid": 28758,
"ns": 0,
"title": "Spacetime",
"index": 5,
"thumbnail": {
"source": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/GPB_circling_earth.jpg/200px-GPB_circling_earth.jpg",
"width": 200,
"height": 150
}
}
}
}
}
我对如何使用页面对象感到困惑
我目前有
data class APIResult(
@SerializedName("query")
val query: Query
)
data class Query(
@SerializedName("pages")
val pages: Pages
)
data class Pages(
@SerializedName("thumbnail")
val thumbnail: Thumbnail
)
data class Thumbnail(
@SerializedName("source")
val source: String
)
有什么建议吗?
查询中有一个页面映射
data class Query(
@SerializedName("pages")
val pages: Map<String, Page>
)
而您的 Pages
实际上应该是一个页面
data class Page(
@SerializedName("pageid")...
@SerializedName("thumbnail")
val thumbnail: Thumbnail
)
这是地图上的一个元素:
"28189": {...}
你之前无法知道每个键,所以它是 String, Object
的映射,但你知道对象类型是 Page
所以在那之后,您可以 pages.values()
并获取页面列表或您可以使用地图执行的任何操作。
我正在使用维基百科API,其响应结构如下
{
"batchcomplete": "",
"continue": {
"gpsoffset": 10,
"continue": "gpsoffset||"
},
"query": {
"pages": {
"27667": {
"pageid": 27667,
"ns": 0,
"title": "Space",
"index": 1,
"thumbnail": {
"source": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/3D_coordinate_system.svg/200px-3D_coordinate_system.svg.png",
"width": 200,
"height": 200
}
},
"28189": {
"pageid": 28189,
"ns": 0,
"title": "Space Shuttle",
"index": 8,
"thumbnail": {
"source": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/STS120LaunchHiRes-edit1.jpg/128px-STS120LaunchHiRes-edit1.jpg",
"width": 128,
"height": 200
}
},
"28758": {
"pageid": 28758,
"ns": 0,
"title": "Spacetime",
"index": 5,
"thumbnail": {
"source": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/GPB_circling_earth.jpg/200px-GPB_circling_earth.jpg",
"width": 200,
"height": 150
}
}
}
}
}
我对如何使用页面对象感到困惑 我目前有
data class APIResult(
@SerializedName("query")
val query: Query
)
data class Query(
@SerializedName("pages")
val pages: Pages
)
data class Pages(
@SerializedName("thumbnail")
val thumbnail: Thumbnail
)
data class Thumbnail(
@SerializedName("source")
val source: String
)
有什么建议吗?
查询中有一个页面映射
data class Query(
@SerializedName("pages")
val pages: Map<String, Page>
)
而您的 Pages
实际上应该是一个页面
data class Page(
@SerializedName("pageid")...
@SerializedName("thumbnail")
val thumbnail: Thumbnail
)
这是地图上的一个元素:
"28189": {...}
你之前无法知道每个键,所以它是 String, Object
的映射,但你知道对象类型是 Page
所以在那之后,您可以 pages.values()
并获取页面列表或您可以使用地图执行的任何操作。