Jar下载地址:http://jackson.codehaus.org/
注意:
一、类中的属性名称一定要和Json数据的属性名称一致(大小写敏感),类之间的嵌套关系也应该和Json数据的嵌套关系一致。
二、当返回的json数据中新增了某些字段,而实体类又没有相关的属性名与之对应,此时的解决方案如下。即在类名上一行添加@JsonIgnoreProperties(ignoreUnknown = true)即可。
@JsonIgnoreProperties(ignoreUnknown = true)//为了防止后台接口返回此类中没有定义的属性而造成的bug。
public class CxcMoniJson extends SiteMoniJson {
}
三、当实体类中新增了某些属性,而返回的json数据又没有相关的字段与之对应,此时这种情况是不会有bug的,放心使用。
四、不要在实体类中使用内部类,否则会解析异常。
五、关于Jackson的混淆。
1.保留相关的Jackson的jar包下的类。
-libraryjars libs/jackson-all-1.9.2.jar
-dontwarn org.codehaus.jackson.**
-keep class org.codehaus.jackson.**{*;}
-keep interface org.codehaus.jackson.** { *; }
-keep public class * extends org.codehaus.jackson.**
2.保留相关的Bean类,因为Jackson内部实现原理是有使用反射技术的,所以要保留相关的实体类,比如我的实体类都在com.cy.app.money.model包下,则引入以下代码。
-dontwarn com.cy.app.money.model.**
-keep class com.cy.app.money.model.** {*;}
3.过滤相关泛型和注解,因为实体类中可能会有List<实体类>等泛型,如果不过滤,混淆之后List<实体类>就会变成List,导致反射的时候出错。
过滤泛型:
-keepattributes Signature
过滤注解:
-keepattributes *Annotation*