如何使`ObjectReader`注意@@ JsonProperty`注释

时间:2020-05-10 23:46:15

标签: json kotlin jackson annotations ktor

对于某些实验,我创建了一个只有一个字段代表存储库的小型数据类:

@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也要注意注释?

0 个答案:

没有答案