【问题标题】:Moshi custom field not working on serializationMoshi 自定义字段不适用于序列化
【发布时间】:2019-09-20 08:08:50
【问题描述】:

我在 Android 上使用 Moshi 1.8.0,并按照 Moshi 文档中的说明创建自定义字段:https://github.com/square/moshi#custom-field-names-with-json

这表示我的请求数据类是这样的:

data class GetStuff(
        @Json(name = "RequestContext") val context: RequestContext,           
)

但问题是实际的 HTTP 请求是这样发送的:

{"context": "blah... }

我希望我的请求变成这样:

{"RequestContext": "blah... }

这似乎适用于响应,但我不知道如何使它适用于请求。

谢谢! 这不是@Json(name = "") 注释对请求的作用吗?

【问题讨论】:

    标签: android json serialization moshi


    【解决方案1】:

    呃,我是个白痴。

    我会为将来需要这个的人回答这个问题(可能还会有我)。

    为了将 Json 转换为数据类,您必须将 API 调用更改为具有此注释:

    @MoshiDeserialization
    

    我知道,这就是使反序列化起作用的神奇注释。

    但是,我不知道我还需要第二个魔术注释才能使序列化部分也能正常工作:

    @MoshiSerialization
    

    现在可以了。

    【讨论】:

    • 您使用什么来进行 API 调用? Moshi 没有定义这样的注释。
    猜你喜欢
    • 2016-07-17
    • 2012-10-26
    • 2020-04-20
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2017-06-16
    相关资源
    最近更新 更多