前端之家收集整理的这篇文章主要介绍了
fastjson的简单学习,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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"));
}
}
原文链接:https://www.f2er.com/json/289969.html