有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Jackson的改装请求中插入注释

我在安卓应用程序中使用改型2.1和Jackson对使用Jackson进行反序列化的服务进行post调用。服务希望传入的json看起来像:

{"@class":"com.servicepackagepath$OurClassName","prop1":"value1","prop2":"value2"}

但是,生成并发送到服务的json是:

{"prop1":"value1","prop2":"value2"}

结果是500美元。改装签名如下所示:

@POST("apiName")
Call<String> apiName(@Body OurClassName ourClassName);

客户端上的OurClassName类与服务上的类不同。完全相同的签名,但是本地的

如何将@class注释插入到传出的json中


共 (1) 个答案

  1. # 1 楼答案

    好吧,算了。您需要将以下内容添加到改装生成器中:

    .addConverterFactory(JacksonConverterFactory.create(
        new ObjectMapper().enableDefaultTyping(ObjectMapper.DefaultTyping.JAVA_LANG_OBJECT, JsonTypeInfo.As.PROPERTY)
    ))
    

    然后在你的类声明之上做:

    @JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include= JsonTypeInfo.As.PROPERTY, property="@class")