我使用gson将json字符串解析为以下对象结构:
data class Base (
val expand: String,
val startAt: Long,
val maxResults: Long,
val total: Long,
val issues: List<Issue>
)
data class Issue (
val expand: String,
val id: String,
val self: String,
val key: String,
val fields: Fields
)
data class Fields (
val summary: String,
val issuetype: Issuetype,
val customfield10006: Long? = null,
val created: String,
val customfield11201: String? = null,
val status: Status,
val customfield10002: Customfield10002? = null,
val customfield10003: String? = null
)
一切正常,对象模型也是正确的,因为我可以访问对象的每个元素。 但是,我遇到了一个问题,我不知道如何获取所有字段元素的列表。现在,我只想出了如何访问一项(通过使用索引和get()函数):
val baseObject = gson.fromJson(response, Base::class.java)
val fieldsList = baseObject.issues.get(0).fields
我实际上想拥有所有字段元素的列表,而不仅仅是一个。是否有gson函数允许我这样做?在Java的gson文档中找不到任何相关内容。
答案 0 :(得分:1)
已经创建了baseObject
时,您不必寻找gson函数。您只需要从每个issue
的字段中获取,就可以使用map
函数来实现此目的,它将把每个问题转换为新的类型,以便您可以在那里获取问题字段
val fieldFromAllIssues: List<Fields> = baseObject.issues.map { it.fields }
在这种情况下, it
是一个问题。关于it
的更多解释是here