5 Star 7 Fork 1

拉风的道长 / SJson

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

##Sjon的初衷是什么? 有没有遇到服务器接口返回数据总是不固定的情况?

  //这是接口的定义:
  ArrayList<Student> students;
  int counts;
  
  //这是他喵的服务器返回:
  {"students" :[], "counts":0}
    
  //这也是他喵的服务器返回:
  {"students" :"", "counts":""}

遇到这种情况,是不是总是不能使用gson和fastjson这样的工具?因为会报错!CastClassException!

面对这样的情况你只想说什么:WTF!

##Sjon有哪些功能?

  • json字符串直接转化为java对象或数组
    • 采用java反射
  • 规避gson等工具的强转错误
    • 类型不匹配提示
    • 不匹配类型自动赋值和转化
  • json数据字段和java对象字段比较
    • 列出差异字段
    • 不同颜色标识

##Sjon有哪些缺陷?

  • 性能不高
    • 采用反射,速度相对慢,不适合大量的数据
    • 不如Gson高效(Nexus4 5.1.1系统): 万次效率对比
      • 最新优化之后,虽然有点进步,但还是有:Gson:Sjon= 3:10的差距
  • 支持类型不足
    • 支持:基本数据类型,数组,自定义对象
    • 不支持:Map,泛型,等
  • 代码写的不好
    • 会给想阅读代码的你带来不便吧,たぶん

##使用方法

###json转对象

/**
* Json字符串转为JavaBean
**/
String jsonString = "{"this":"jsonObjectString"}";
JavaBean bean = Sjson.jsonToObject(jsonString, JavaBean.class);

/**
* JSONObject转为JavaBean
**/
JSONObject jsonObject = new JSONObject("{"this":"jsonObjectString"}");
JavaBean bean = Sjson.jsonToObject(jsonObject, JavaBean.class);

/**
* Json字符串转为Java数组
**/
String jsonString = "[{"this":"jsonObjectString"},{"this":"jsonObjectString"}]";
ArrayList<JavaBean> beanList = Sjson.jsonToArray(jsonString, JavaBean.class);

/**
* JSONArray转为Java数组
**/
JSONArray jsonArray = new JSONArray("[{"this":"jsonObjectString"},{"this":"jsonObjectString"}]");
ArrayList<JavaBean> beanList = Sjson.jsonToArray(jsonArray, JavaBean.class);

###打印java与Json不同开关

Util.showDiff = true;

###打印java与Json不同结果示例

Key    JavaBean    Json     value
this                  jsonObjectString
that           ×       (Json Havn't)
they    ×              jsonObjectString
them    ×       ×       (Json Havn't)

##有问题反馈 在使用中有任何问题,欢迎反馈给我;或者如果你有新的想法和建议,都可以用以下联系方式跟我交流

##关于作者 一个喜欢写代码,但总是写不好的农民工。

Comments ( 0 )

Sign in for post a comment

About

采用java反射和自带的json解析来实现json转Object 的操作 spread retract
Android
Apache-2.0
Cancel

Releases

No release

Gitee Metrics

Contributors

All

Activities

load more
can not load any more
Android
1
https://gitee.com/huyistudio/SJson.git
git@gitee.com:huyistudio/SJson.git
huyistudio
SJson
SJson
master

Search