加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具

发布时间:2020-12-16 19:34:58 所属栏目:百科 来源:网络整理
导读:这是关于FastJson的一个使用Demo,在Java环境下验证的 [java] view plain copy class User{ private int id; private Stringname; public int getId(){ return id; } void setId( int id){ this .id=id; } public StringgetName(){ return name; void setNam

这是关于FastJson的一个使用Demo,在Java环境下验证的

[java] view plain copy
  1. classUser{
  2. privateintid;
  3. privateStringname;
  4. publicintgetId(){
  5. returnid;
  6. }
  7. voidsetId(intid){
  8. this.id=id;
  9. }
  10. publicStringgetName(){
  11. returnname;
  12. voidsetName(Stringname){
  13. this.name=name;
  14. }
copy
importjava.util.ArrayList;
  • importjava.util.List;
  • classGroup{
  • intid;
  • privateStringname;
  • privateList<User>list=newArrayList<User>();
  • publicList<User>getList(){
  • returnlist;
  • voidsetList(List<User>list){
  • this.list=list;
  • copy
    classWeibo{
  • privateStringid;
  • privateStringcity;
  • publicWeibo(Stringid,Stringcity){
  • this.city=city;
  • publicWeibo(){
  • publicStringgetId(){
  • returnid;
  • voidsetId(Stringid){
  • publicStringgetCity(){
  • returncity;
  • voidsetCity(Stringcity){
  • this.city=city;
  • copy
    importjava.util.HashMap;
  • importjava.util.Map;
  • importcom.alibaba.fastjson.JSON;
  • importcom.alibaba.fastjson.JSONArray;
  • importcom.alibaba.fastjson.JSONObject;
  • //下面是FastJson的简介:常用的方法!
  • //FastjsonAPI入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
  • //publicstaticfinalObjectparse(Stringtext);//把JSON文本parse为JSONObject或者JSONArray
  • //publicstaticfinalJSONObjectparseObject(Stringtext);//把JSON文本parse成JSONObject
  • //publicstaticfinal<T>TparseObject(Stringtext,Class<T>clazz);//把JSON文本parse为JavaBean
  • //publicstaticfinalJSONArrayparseArray(Stringtext);//把JSON文本parse成JSONArray
  • //publicstaticfinal<T>List<T>parseArray(Stringtext,Class<T>clazz);//把JSON文本parse成JavaBean集合
  • //publicstaticfinalStringtoJSONString(Objectobject);//将JavaBean序列化为JSON文本
  • //publicstaticfinalStringtoJSONString(Objectobject,booleanprettyFormat);//将JavaBean序列化为带格式的JSON文本
  • //publicstaticfinalObjecttoJSON(ObjectjavaObject);将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)
  • /**
  • *这是关于FastJson的一个使用Demo,在Java环境下验证的;
  • *使用的时候可以参照这个例子进行回忆!
  • *备注:下面写的Json格式的数据"前面的,意思是告诉编译器忽略掉它后面的"。
  • *后面定义有三个类:User、Group、Weibo
  • *@authorliuzhao
  • */
  • classJsonDemo{
  • staticvoidmain(String[]args){
  • json2JsonObjectM1();//将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
  • json2BeanM2();//将Json文本数据转换为JavaBean数据!
  • json2JSONArrayM3();//将json数据转化为JSONArray:
  • json2JavaBeanM4();//将JSON文本转换为JavaBean的集合;转换为单纯的1个Object:parseObject(Stringtext,Class<T>clazz);
  • bean2JsonM5();//将JavaBean转换为Json格式的数据/Json文本用户数据的传递:例如上传服务器
  • bean2JSONObjectM6();//将JavaBean转换为JSON对象
  • complexExampleM7();//一个相对复杂的例子:
  • complex2JsonM8();//一个复杂的Object到Json的Demo
  • complexMap2JsonM9();//将Map数据转换为JsonString的Demo;这个对RedBoy服务端不就直接破了嘛!
  • *将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
  • voidjson2JsonObjectM1(){
  • //一个JsonObject文本数据
  • Strings="{"name":"liuzhao"}";
  • //将JsonObject数据转换为Json
  • JSONObjectobject=JSON.parseObject(s);
  • //利用键值对的方式获取到值
  • System.out.println(object.get("name"));
  • *打印:
  • *liuzhao
  • */
  • *将Json文本数据转换为JavaBean数据!
  • *需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null!
  • voidjson2BeanM2(){
  • Strings="{"id":"0375","city":"平顶山"}";
  • //一个简单方便的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象!
  • Weiboweibo=JSON.parseObject(s,Weibo.class);//Weibo类在下边定义
  • System.out.println(weibo.getId());
  • System.out.println(weibo.getCity());
  • //打印的结果0375
  • //平顶山
  • /**
  • *将Map类型的数据转换为JsonString
  • voidcomplexMap2JsonM9(){
  • Groupgroup=newGroup();
  • group.setId(1);
  • group.setName("group");
  • Useruser1=newUser();
  • user1.setId(2);
  • user1.setName("user1");
  • Useruser2= user2.setId(3);
  • user2.setName("user2");
  • group.getList().add(user1);
  • group.getList().add(user2);
  • Map<Integer,Object>map=newHashMap<Integer,Object>();
  • map.put(1,"No.1");
  • map.put(2,"No.2");
  • 3,group.getList());
  • StringjsonString=JSON.toJSONString(map);
  • System.out.println(jsonString);
  • *输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}
  • *由一个复杂的Object到Json的Demo
  • voidcomplex2JsonM8(){
  • StringjsonString=JSON.toJSONString(group);
  • *输出:{"id":1,"list":[{"id":2,"name":"user2"}],"name":"group"}
  • *一个相对复杂的例子:
  • *JSON文本数据:
  • *首先是JSONObject,转换为JSONArray;
  • *然后将JSONArray转换为JavaBean
  • voidcomplexExampleM7(){
  • Strings="{js:[{id:"110000","city":"北#001京市"},{id:"110000","city":"北#002京市"}"
  • +","city":"北#002京市"},"
  • +"{id:"110000","city":"#006北#005京市"},"
  • +"{id:"110000",{id:"120000","city":"天#009津市"}]}";
  • JSONObjectobject=JSON.parseObject(s);
  • ObjectjsonArray=object.get("js");
  • System.out.println(jsonArray);
  • List<Weibo>list=JSON.parseArray(jsonArray+"",Weibo.class);
  • for(Weiboweibo:list){
  • *将JavaBean转换为JSON对象
  • voidbean2JSONObjectM6(){
  • Weiboweibo=newWeibo("0373","洛阳");
  • JSONObjectjson=(JSONObject)JSON.toJSON(weibo);
  • System.out.println(json.get("id"));
  • *0373
  • *将JSON文本转换为JavaBean的集合;
  • *内部实现肯定是:首先转换为JSONArray,然后再转换为List集合
  • voidjson2JavaBeanM4(){
  • Strings="[{"id":"0375","city":"平顶山"},{"id":"0377","city":"南阳"}]";
  • List<Weibo>list=JSON.parseArray(s,153); background-color:inherit; font-weight:bold">class);
  • for(Weiboweibo:list){
  • System.out.println(weibo.getCity());
  • *平顶山
  • *南阳
  • *将json数据转化为JSONArray:
  • *注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合)
  • *获取JSONArray中的数据转换为String类型需要在外边加"";
  • voidjson2JSONArrayM3(){
  • //将JSON文本转换为JSONArray
  • JSONArrayarray=JSON.parseArray(s);
  • //这行必须写:必须加上+"";不然会报出类型强转异常!
  • Stringstr=array.get(1)+"";
  • System.out.println(array.get(0));
  • JSONObjectobject=JSON.parseObject(str);
  • System.out.println(object.get("id"));
  • *{"city":"平顶山","id":"0375"}
  • 0377
  • *将JavaBean转换为Json格式的数据/Json文本
  • *用户数据的传递:例如上传服务器
  • voidbean2JsonM5(){
  • newWeibo("123456","上海");
  • Stringstring=JSON.toJSONString(weibo);
  • System.out.println(string);
  • *{"city":"上海","id":"123456"}
  • }

  • 转自: http://www.oschina.net/code/snippet_228315_35122

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读