作为 HTML-Header 参数。 API 定义了一个值为 aId 的-6ren">
gpt4 book ai didi

android - Retrofit 或 Jackson ObjectMapper 将 "aId"属性映射到小写的 "aid"

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:57:03 25 4
gpt4 key购买 nike

我正在使用 Jackson 2.9.2Retrofit 2.1.0 使用 JSONArray 进行一些 POST 操作> 作为 HTML-Header 参数。

API 定义了一个值为 aId 的值。无论我尝试什么,我的 JSON 属性总是 转换为小写字母 (aid)。

我用 abId 测试了我的相同代码,它可以工作...有人知道我的配置在哪里错误或者哪个约定(?)不符合这个属性名称吗?

//ObjectMapper initialization
ObjectMapper().disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)


//the data class
import com.fasterxml.jackson.annotation.JsonProperty

data class MyClass(
@JsonProperty
val aId: String? = null, //<-- not working
@JsonProperty
val abId: String? = null //working!
)

//Retrofit call
import retrofit2.http.Body

@POST("log")
fun sendLog(@Body logs: List<MyClass>): Call<MyCall>

//JSON Result in HTML Header
[{
"aid":"some_value", //should be "aId"
"abId":"some_value" //is correct
}]

我尝试使用以下注释:

  • @SerializedName("aId")

  • @JsonProperty("aId")

  • @JsonRawValue

  • @JsonAlias

最佳答案

试试这个@get:JsonProperty("aId")

关于android - Retrofit 或 Jackson ObjectMapper 将 "aId"属性映射到小写的 "aid",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57058208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com