由于Gson转换导致int转换成double的问题,使⽤fastjson替代Gson将map转为json,如果map⾥有Integer值,那么会将Integer转为Double
⽤了⼏种⽅式尝试解决⽆效,得知后台是⽤的fastjson,于是使⽤fastjson替代。
因为很多地⽅都是使⽤的是Gson,所以只处理了有影响的地⽅。
使⽤ fastjson
导⼊依赖
implementation 'com.alibaba:fastjson:1.2.9'
混淆
# fastjson
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.**{*;}
# 忽略泛型
-keepattributes Signature
#保持所有实现 Serializable 接⼝的类成员
#保持 Serializable 不被混淆
-keepnames class*implements java.io.Serializable
-keepclassmembers class*implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static!transient<fields>;
!private<fields>;
!private<methods>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
fastjson怎么用java.lang.Object readResolve();
}
打release包时出现了OOM,在gradle.properties⾥加上:
# 增加内存分配⼤⼩
使⽤
将map转为JSONString(resultMap)
使⽤后就好了。。怎么解决Gson⾃⾝的问题没时间去细究了。
如果有完美的解决⽅式请甩上链接~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。