带有 proguard 的 Jackson 无法正确发送数据

问题描述 投票:0回答:1

我正在使用 ObjectMapper 和 JsonProperty 开发

com.fasterxml.jackson
库。

我扫描了几乎所有的 stackoverflow 问题,但找不到答案。

Json 数据被 proguard 损坏。

Json proguard时生成的数据:

{"a":{"a":"Oneil Hooper","b":""},"b":[{"a":"1656952356532","b":0,"q":""} ],"c":["+1986535623355"]}

我想要的数据:

{"displayName":{"name":"Oneil Hooper","surname":""},"b":[{"phoneNumber":"+1656952356532","b":0,"q":"" }],"c":["+1986535623355"]}

我的杰克逊proguard:

-keep @com.fasterxml.jackson.annotation.JsonIgnoreProperties class * { *; }
-keep class com.fasterxml.** { *; }
-keep class org.codehaus.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepclassmembers public final enum com.fasterxml.jackson.annotation.JsonAutoDetect$Visibility {
     public static final com.fasterxml.jackson.annotation.JsonAutoDetect$Visibility *;
}

-keep class com.fasterxml.jackson.databind.ObjectMapper {
     public <methods>;
     protected <methods>;
}

-keep class * implements java.io.Serializable
-keep class com.fasterxml.jackson.databind.ObjectWriter {
     public ** writeValueAsString(**);
}
-dontwarn com.fasterxml.jackson.databind.**
-keep class * implements com.fasterxml.jackson.core.type.TypeReference
android json jackson proguard
1个回答
0
投票

像这样添加它修复了它:谢谢

-keep class * {
        @com.fasterxml.jackson.annotation.JsonCreator
        <fields>;
        @com.fasterxml.jackson.annotation.JsonProperty
        <fields>;
        @com.fasterxml.jackson.annotation.JsonCreator
        <methods>;
        @com.fasterxml.jackson.annotation.JsonProperty
        <methods>;
    }
    
    -keep class com.fasterxml.** { *; }
    -keep class org.codehaus.** { *; }
    -keepnames class com.fasterxml.jackson.** { *; }
© www.soinside.com 2019 - 2024. All rights reserved.