3
fastjson最大的问题之一就是android和standard好像是不兼容的,就算兼容也因为是2个不同的maven坐标,没办法同时依赖。我的项目中,一些pojo希望android端和服务端共用,但若要加上fastjson的注解,就会依赖fastjson的库,但这库又同时存在2个。当然如果提供编程式地与注解相同功能的配置api就更好了,这样就不再需要用注解这样的侵入式配置了
fastjson最大的问题之一就是android和standard好像是不兼容的,就算兼容也因为是2个不同的maven坐标,没办法同时依赖。我的项目中,一些pojo希望android端和服务端共用,但若要加上fastjson的注解,就会依赖fastjson的库,但这库又同时存在2个。当然如果提供编程式地与注解相同功能的配置api就更好了,这样就不再需要用注解这样的侵入式配置了
多个jar的版本管理很麻烦的,遇到不兼容反馈给我,我在android上补上就好了
可以在maven profile里定义不同dependency
参考连接池之类的依赖不同版本的jdbc接口
android现在用的gradle,不过因为只有android用gradle,所以我也不是很熟,好像没profile 具体遇到不兼容主要是ObjectSerializer和ObjectDeserializer,好像有次break change,改了这俩api,但android版本却没改,于是就杯具了。不知道现在最新版android版本有没有更新。我觉得把android版和standard中公开api都提取出来弄成一个包,应该就不容易遇到这种不兼容问题了。
ObjectSerializer/ObjectDeserializer在1.0和1.1上是不同的,所以android版本是1.0.x版版本。分开多个jar也解决不了解这个问题。
把存在差异的两个方法都实现就兼容,比如:
public class MyObjectSerializer {
public void write(JSONSerializer serializer, //
Object object, //
Object fieldName, //
Type fieldType) throws IOException {
write(serializer, object, fieldName, fieldType, 0);
}
public void write(JSONSerializer serializer, //
Object object, //
Object fieldName, //
Type fieldType, //
int features) throws IOException {
}
}