对于某些实验,我创建了一个只有一个字段代表存储库的小型数据类:
@JsonIgnoreProperties(ignoreUnknown = true)
data class Repo(@JsonProperty("full_name") val name: String)
现在,我想获取所有GitHub存储库并为每个存储库创建一个Repo对象。
为此,我尝试了两种方法:一种方法是使用JsonNode
,然后尝试将其转换为Repo
,另一种方法是直接使用Repo
:
var s = ""
val repos = client.get<List<JsonNode>>("https://api.github.com/repositories")
val repos2 = client.get<List<Repo>>("https://api.github.com/repositories")
repos.zip(repos2).forEach {
val repo = ObjectMapper().readerFor(Repo::class.java).readValue<Repo>(it.first)
val repo2 = it.second
s += repo.name + "\n\r"
s += repo2.name + "\n\r"
}
我认为这两种方法都会得出相同的结果,但是只有直接方法会注意@JsonProperty
注释。第一种方法是使用json字段name
而不是full_name
。
我如何也ObjectReader
也要注意注释?