软件简介
gson-plugin是一种Android-JSON解析的插件,解决Android-JSON解析数据类型转换异常,不影响GSON库的使用。
gson-plugin依赖sdk:https:/Github.com/lianjiatech/gson-plugin-sdk。
诞生背景
Android的主要开发语言是Java,属于强数据型语言,很多公司的后台开发都是PHP,属于弱数据型语言。
在数据传输过程中,客户端和服务器往往因为某个字段的数据类型不一致而失败,导致整个页面的数据无法显示。
功能描述
1.当某个字段分析失败时,跳过该字段继续分析其他字段,以确保显示其他正常数据。
2.当某个字段分析失败时,通过观察者模式抛出异常,开发人员可以在收到异常后进行相应的处理(如将异常日志上传到服务器,然后推动服务器RD解决方案)。
3.不影响Gson库的使用。
接入方法
1.工程根目录加入repositories。
buildscript
repositoriss
/jitpack
}
}
alprojects
repositoriss
/jitpack
}
}
2.工程根目录build.gradle加入Classpath。
dendence
claspathcom
}
3.工程app目录build.gradle加入依赖。
plugin:
4.可选调用(监听异常json字段,建议收到后上报服务器)
Readertols。
@overide。
(stringexception,Stringonstack){
//uploaderorinfotoserver。
Log.e(“test”,“jsonsyntaxexception”;
Log.e(test)
}
});
5.添加混淆keep。
-kepclascom。
-kepclascom。
性能对比
2000次循环分析:
plicsstestbean
publicstringame;
publicintage;
publicstringsex;
publicbooleanis_sucess;
publicstring[]aray;
publiclistlist;
publicMapp;
publictestbeanbean;
}
使用原生gson结果:
第一次:1374ms,第二次:1430ms,第三次:1429ms,平均:1411ms。
使用gson-plugin结果:
第一次:1503ms,第二次:1381ms,第三次:1418ms,平均1434ms。
结论:
与原生gson分析相比,gson-plugin效率略低(多执行几行判断逻辑代码),但可忽略不计。
原理说明
侵入编译过程,在编译过程中,修改gson库的字节码,修改gson分析的相关方法。
支持gson库版本。
支持gson库的所有版本。
特殊说明
2.1.0之前的版本对Float、Double、Map数据类型的支持不全面,建议使用2.1.0以上的版本。