使用改进的2和自定义的Gson转换器,我在api端点遇到了来自特定设备(Samsung Galaxy s9)的序列化问题。下面是我的Gson配置;
new Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create(getGson()));
public static Gson getGson() {
return new GsonBuilder()
.setDateFormat(GSON_DATE_FORMAT)
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.registerTypeAdapter(Long.class, new LongTypeAdapter())
.setLongSerializationPolicy( LongSerializationPolicy.STRING )
.create();
}使用Sony Xperia premium进行测试时,对象会像它们应该达到的那样到达api,例如:
{
client_id: '07cffbe0-6df9-4b08-a524-f19b265c17be',
country: 'xxxx',
email: 'xxxx',
first_name: 'xxxx',
last_name: 'xxxx',
....
}但在三星盖乐世S9上,我得到的是:
{
a: '07cffbe0-6df9-4b08-a524-f19b265c17be',
b: 'xxxx',
c: 'xxxx',
d: 'xxxx',
e: 'xxxx',
....
}为什么序列化会在不同的设备上发生变化?
发布于 2019-07-24 21:57:03
看起来在一个设备上启用了防范/模糊处理,而在另一个设备上禁用了,你确定你在两个设备上使用相同的构建吗?
有关混淆和GSON的问题,请查看此处:https://stackoverflow.com/a/31851024/2879657
https://stackoverflow.com/questions/57184261
复制相似问题