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

Fastjson示例代码

发布时间:2020-12-16 19:00:46 所属栏目:百科 来源:网络整理
导读:packagecom.wzc.test.Test;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson
packagecom.wzc.test.Test;

importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;

importcom.alibaba.fastjson.JSON;
importcom.alibaba.fastjson.JSONArray;
importcom.alibaba.fastjson.JSONObject;
importcom.alibaba.fastjson.TypeReference;
importcom.alibaba.fastjson.serializer.SerializerFeature;

classUser{
	privateintid;

	privateStringname;

	privateDatebirthday;

	publicintgetId(){
		returnid;
	}

	publicvoidsetId(intid){
		this.id=id;
	}

	publicStringgetName(){
		returnname;
	}

	publicvoidsetName(Stringname){
		this.name=name;
	}

	publicDategetBirthday(){
		returnbirthday;
	}

	publicvoidsetBirthday(Datebirthday){
		this.birthday=birthday;
	}

	@Override
	publicStringtoString(){
		SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd");
		return"User[id="+id+",name="+name+",birthday="+format.format(birthday)+"]";
	}
}

publicclassApp{
	publicstaticvoidmain(String[]args){
		//序列化与反序列Bean
		//因为Bean中的字段带有类型,不同的类型都能正确处理
		//1.准备数据
		Useruser=newUser();
		user.setId(1);
		user.setName("User");
		user.setBirthday(newDate());
		//2.序列化
		StringbeanStr=JSON.toJSONString(user);
		System.out.println(beanStr);
		System.out.println();
		//3.反序列化
		Userbean=JSON.parSEObject(beanStr,User.class);
		System.out.println(bean);
		System.out.println();
		//4.格式化形式的反序列化
		StringprettyStr=JSON.toJSONString(user,SerializerFeature.PrettyFormat);
		System.out.println(prettyStr);
		System.out.println();
		//5.使用参数保留类型信息
		StringclassStr=JSON.toJSONString(user,SerializerFeature.WriteClassName,SerializerFeature.PrettyFormat);
		System.out.println(classStr);
		System.out.println();

		//序列化与反序列化Map
		//1.准备数据
		Map<String,Object>map=newHashMap<>();
		map.put("id",1);
		map.put("name","User");
		map.put("birthday",newDate());
		//2.序列化
		StringmapStr=JSON.toJSONString(map);
		System.out.println(mapStr);
		System.out.println();
		//3.反序列化
		//使用TypeReference提供类型信息
		//由于Value为Object类型,可以看到序列化和反序列化丢失了类型信息
		Map<String,Object>m=JSON.parSEObject(mapStr,newTypeReference<Map<String,Object>>(){
		});
		System.out.println(m);
		System.out.println();

		//序列化与反序列化数组
		//1.准备数据
		Useruser2=newUser();
		user2.setId(2);
		user2.setName("User2");
		user2.setBirthday(newDate());
		User[]array=newUser[]{user,user2};
		//2.序列化
		StringarrayStr=JSON.toJSONString(array);
		System.out.println(arrayStr);
		System.out.println();
		//3.反序列化
		List<User>users=JSON.parseArray(arrayStr,User.class);
		System.out.println(users);
		System.out.println();
		//4.使用JSONObject和JSONArray
		JSONArrayjsonArray=JSON.parseArray(arrayStr);
		for(inti=0;i<jsonArray.size();i++){
			JSONObjectobj=jsonArray.getJSONObject(i);
			System.out.println(obj);
		}
	}
}

输出

{"birthday":1453037936843,"id":1,"name":"User"}

User[id=1,name=User,birthday=2016-01-17]

{
	"birthday":1453037936843,"name":"User"
}

{
	"@type":"com.wzc.test.Test.User","birthday":1453037936843,"name":"User"
}

{"birthday":1453037937054,"name":"User","id":1}

{birthday=1453037937054,id=1}

[{"birthday":1453037936843,"name":"User"},{"birthday":1453037937057,"id":2,"name":"User2"}]

[User[id=1,birthday=2016-01-17],User[id=2,name=User2,birthday=2016-01-17]]

{"birthday":1453037936843,"id":1}
{"birthday":1453037937057,"name":"User2","id":2}

(编辑:李大同)

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

    推荐文章
      热点阅读