获取已解析的json元素的列表

时间:2019-03-08 19:24:23

标签: kotlin gson

我使用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文档中找不到任何相关内容。

1 个答案:

答案 0 :(得分:1)

已经创建了baseObject时,您不必寻找gson函数。您只需要从每个issue的字段中获取,就可以使用map函数来实现此目的,它将把每个问题转换为新的类型,以便您可以在那里获取问题字段

val fieldFromAllIssues: List<Fields> = baseObject.issues.map { it.fields }
在这种情况下,

it是一个问题。关于it的更多解释是here