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

fastjson的简单学习

发布时间:2020-12-16 19:12:03 所属栏目:百科 来源:网络整理
导读:packagecom.hanchao.testFastJson;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;/************************阿里的Fast
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"));
	}
	
}

(编辑:李大同)

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

    推荐文章
      热点阅读