packagecom.hanchao.testFastJson; importjava.util.HashMap; importjava.util.List; importjava.util.Map; importcom.alibaba.fastjson.JSON; importcom.alibaba.fastjson.JSONArray; importcom.alibaba.fastjson.JSONObject; /*********************** *阿里的FastJson的简单学习 *@author:han *@version:1.0 *@created:2014-11-30 *********************** */ publicclasstestFastJson{ /** 一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分, 它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任何其他的 javaJsonparser。包括自称最快的Jackson;功能强大,完全支持 JavaBean、集合、Map、日期、Enum,支持泛型,支持自省; 无依赖,能够直接运行在JavaSE5.0以上的版本;支持Andriod; 开源(Apache2.0) //下面是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(和上面方法的区别是返回值是不一样的) <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.46</version> </dependency> 参考文章: http://blog.csdn.net/djun100/article/details/24237371 http://www.open-open.com/lib/view/open1405608707281.html */ publicstaticvoidmain(String[]args){ //1.将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息 fastJsonTest1(); //2.将Json文本转换为JavaBean对象。 fastJsonTest2(); //3.将Map类型的数据转为Json字符串 fastJsonTest3(); //4.含有数组的json字符串,如何处理 fastJsonTest4(); //5.将javabean转为json对象 fastJsonTest5(); } /** *将javabean转为json对象 * *2014-11-30 *@author:hanchao */ privatestaticvoidfastJsonTest5(){ Weiboweibo=newWeibo("0310","洛阳"); //转为JSon JSONObjectjson=(JSONObject)JSON.toJSON(weibo); System.out.println(json.get("id")); } /** *含有数组的json字符串 * *2014-11-30 *@author:hanchao */ privatestaticvoidfastJsonTest4(){ Useruser1=newUser(); user1.setId(1); user1.setName("hanchao"); Useruser2=newUser(); user2.setId(2); user2.setName("xiweiyuan"); Useruser3=newUser(); user3.setId(3); user3.setName("tom"); Groupgroup=newGroup(); group.setId(1); group.setName("love"); group.getList().add(user1); group.getList().add(user2); group.getList().add(user3); Stringjson=JSON.toJSONString(group); System.out.println(json); //{"id":1,"list":[{"id":1,"name":"hanchao"},{"id":2,"name":"xiweiyuan"},{"id":3,"name":"tom"}],"name":"love"} //下面我要处理上面的json字符串★ JSONObjectobject=JSON.parSEObject(json); System.out.println("id:"+object.getIntValue("id")); System.out.println("name:"+object.getString("name")); /* ObjectjsonArray=object.get("list"); System.out.println("jsonArray: "+jsonArray); List<User>list=JSON.parseArray(jsonArray+"",User.class);//★ */ //或者 StringjsonArray=object.getString("list"); System.out.println("jsonArray: "+jsonArray); List<User>list=JSON.parseArray(jsonArray+"",User.class); for(Useruser:list){ System.out.println("id:"+user.getId()+",name:"+user.getName()); } //处理方法2.我们不知道数组里是一个什么样的javabean★ JSONArrayjsonArray2=object.getJSONArray("list"); System.out.println("jsonArray2:"+jsonArray2); for(inti=0;i<jsonArray2.size();i++){ System.out.println("id:"+jsonArray2.getJSONObject(i).getIntValue("id"));//★ System.out.println("name:"+jsonArray2.getJSONObject(i).getString("name")); } } /** *将Map类型的数据转为Json字符串 * *2014-11-30 *@author:hanchao */ privatestaticvoidfastJsonTest3(){ Useruser1=newUser(); user1.setId(2); user1.setName("user1"); Useruser2=newUser(); user2.setId(3); user2.setName("user2"); Groupgroup=newGroup(); group.setId(1); group.setName("hanchao"); 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"); map.put(3,group.getList()); StringjsonString=JSON.toJSONString(map); System.out.println(jsonString); //{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},"name":"user2"}]} StringjsonString2=JSON.toJSONString(group); System.out.println(jsonString2); //{"id":1,"list":[{"id":2,"name":"user2"}],"name":"hanchao"} } /** *将Json文本数据转换为JavaBean数据。 *需要注意的是:json字符串中的“键名”必须和JavaBean中的 *字段名称一样!键中没有的在这个JavaBean中就显示为null. * * *2014-11-30 *@author:hanchao */ privatestaticvoidfastJsonTest2(){ Stringstr="{\"id\":\"123\",\"city\":\"北京\"}"; //一个简单方便的方法将Json文本信息转换为JsonObject对象的同时转为JavaBean对象! Weiboweibo=JSON.parSEObject(str,Weibo.class); System.out.println(weibo.getId()+","+weibo.getCity()); } /** *将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息 * *2014-11-30 *@author:hanchao */ privatestaticvoidfastJsonTest1(){ Stringstr="{\"name\":\"hanchao\"}"; //json字符串转为Json对象 JSONObjectobject=JSON.parSEObject(str); System.out.println(object); System.out.println(object.get("name")); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。