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

FastJson 数组、List、Set、Map基本序列化与日期格式化

发布时间:2020-12-16 18:42:58 所属栏目:百科 来源:网络整理
导读:摘要: FastJson可以直接序列化数组、List、Set、Map等,也可以直接支持日期类型数据的格式化,包括java.util.Date、java.sql.Date、java.sql.Timestamp、java.sql.Time。 ? FastJson不仅可以支持普通数组、List、Set、Map序列化,也可以支持转载对应的数组

摘要:

FastJson可以直接序列化数组、List、Set、Map等,也可以直接支持日期类型数据的格式化,包括java.util.Date、java.sql.Date、java.sql.Timestamp、java.sql.Time。

?

FastJson不仅可以支持普通数组、List、Set、Map序列化,也可以支持转载对应的数组、List、Set、Map序列化。

默认情况下,FastJson将Date类型序列化为long,序列化和反序列化的过程不会导致时区问题。

FastJson还提供了基于格式化输出的SerializerFeature。

?

数组、List、Set、Map基本序列化和反序列化,代码案例:

package?com.what21.fastjson.fj02;

public?class?User?{

	//?ID
	private?String?id;

	//?名称
	private?String?name;
	
	public?String?getId()?{
		return?id;
	}

	public?void?setId(String?id)?{
		this.id?=?id;
	}

	public?String?getName()?{
		return?name;
	}

	public?void?setName(String?name)?{
		this.name?=?name;
	}

}
package?com.what21.fastjson.fj02;

import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.HashSet;
import?java.util.List;
import?java.util.Map;
import?java.util.Set;

import?com.alibaba.fastjson.JSON;

/**
?*?测试Main方法
?*/
public?class?FastJsonMain?{

	/**
	?*?Array?to?JSON
	?*/
	public?static?void?array2Json(){
		//?数组序列化
		String[]?array?=?new?String[4];
		array[0]="北京";
		array[1]="上海";
		array[2]="广州";
		array[3]="深圳";
????????String?json?=?JSON.toJSONString(array);
????????System.out.println("序列化?Array?to?JSON?->?");
????????System.out.println(json);
????????//?数组反序列化
????????array?=?(String[])JSON.parSEObject(json,String[].class);
????????System.out.println("反序列化?数组内容?->?");
????????System.out.print(array[0]?+?"?");
????????System.out.print(array[1]?+?"?");
????????System.out.print(array[2]?+?"?");
????????System.out.println(array[3]);
	}
	
	/**
	?*?List?to?JSON
	?*/
	public?static?void?list2Json(){
		//?List序列化
		List<String>?list?=?new?ArrayList<String>();
????????list.add("北京");
????????list.add("上海");
????????list.add("广州");
????????list.add("深圳");
????????String?json?=?JSON.toJSONString(list);
????????System.out.println("序列化?List?to?JSON?->?");
????????System.out.println(json);
????????//?List反序列化
????????list?=?(List)JSON.parSEObject(json,List.class);
????????System.out.println("反序列化?List内容?->?");
????????System.out.println(list);
	}
	
	/**
	?*?Set?to?JSON
	?*/
	public?static?void?set2Json(){
		//?List序列化
		Set<String>?set?=?new?HashSet<String>();
		set.add("北京");
		set.add("上海");
		set.add("广州");
		set.add("深圳");
????????String?json?=?JSON.toJSONString(set);
????????System.out.println("序列化?Set?to?JSON?->?");
????????System.out.println(json);
????????//?Set反序列化
????????set?=?(Set)JSON.parSEObject(json,Set.class);
????????System.out.println("反序列化?Set内容?->?");
????????System.out.println(set);
	}
	
	/**
	?*?Map?to?JSON
	?*/
	public?static?void?map2Json(){
		Map<String,String>?map?=?new?HashMap<String,String>();
		map.put("1","北京");
		map.put("2","上海");
		map.put("3","广州");
		map.put("4","深圳");
????????String?json?=?JSON.toJSONString(map);
????????System.out.println("序列化?Map?to?JSON?->?");
????????System.out.println(json);
????????//?Map反序列化
????????map?=?(Map)JSON.parSEObject(json,Map.class);
????????System.out.println("反序列化?Map内容?->?");
????????System.out.println(map);
	}
	
	/**
	?*?Container?to?JSON
	?*/
	public?static?void?container2Json(){
		List<String>?list?=?new?ArrayList<String>();
????????list.add("北京");
????????list.add("上海");
????????list.add("广州");
????????list.add("深圳");
????????Set<String>?set?=?new?HashSet<String>();
		set.add("天津");
		set.add("杭州");
		set.add("青岛");
		set.add("苏州");
		Map<String,Object>?map?=?new?HashMap<String,Object>();
		map.put("one",?list);
		map.put("two",?set);
		String?jsonString?=?JSON.toJSONString(map);
	????System.out.println("Container?to?JSON?->?");
	????System.out.println(jsonString);
	}
	
	/**
	?*?@param?args
	?*/
	public?static?void?main(String[]?args)?{
		//?数组格式化输出
		array2Json();
		//?List格式化输出
		list2Json();
		//?Set格式化输出
		set2Json();
		//?MAP格式化输出
		map2Json();
		//?混合容器格式化输出
		container2Json();
	}

}

输出内容:

序列化?Array?to?JSON?->?
["北京","上海","广州","深圳"]
反序列化?数组内容?->?
北京?上海?广州?深圳
序列化?List?to?JSON?->?
["北京","深圳"]
反序列化?List内容?->?
[北京,?上海,?广州,?深圳]
序列化?Set?to?JSON?->?
["北京","深圳","上海"]
反序列化?Set内容?->?
[北京,?深圳,?上海]
序列化?Map?to?JSON?->?
{"3":"广州","2":"上海","4":"深圳","1":"北京"}
反序列化?Map内容?->?
{3=广州,?2=上海,?4=深圳,?1=北京}
Container?to?JSON?->?
{"one":["北京","深圳"],"two":["苏州","青岛","天津","杭州"]}

?

Java Date序列化和反序列化,代码案例:

package?com.what21.fastjson.fj02;

import?java.util.Date;
import?java.util.HashMap;
import?java.util.Map;

import?com.alibaba.fastjson.JSON;
import?com.alibaba.fastjson.serializer.SerializerFeature;

/**
?*?测试Main方法
?*/
public?class?FastJsonDateMain?{

	/**
	?*?@param?args
	?*/
	public?static?void?main(String[]?args)?{
		//?时间
		Date?date?=?new?Date();?
		String?json?=?JSON.toJSONString(date);
		System.out.println(json);
		
		//?格式化输出时间
		String?jsonStr?=?JSON.toJSONString(date,SerializerFeature.WriteDateUseDateFormat);
		System.out.println(jsonStr);
		
		//?自定义格式输出
		String?dataFormat?=?"yyyy-MM-dd";
		String?timeFormat?=?"yyyy-MM-dd?HH:mm:ss?SSS";
		String?dateJson?=?JSON.toJSONStringWithDateFormat(date,?dataFormat,?
				SerializerFeature.WriteDateUseDateFormat);
		System.out.println(dateJson);
		String?jsonString?=?JSON.toJSONStringWithDateFormat(date,?timeFormat);
		System.out.println(jsonString);
		
		//?从容器中输出
		Map<String,Date>?map?=?new?HashMap<String,Date>();
		map.put("1",?new?Date());
		map.put("2",?new?Date());
		map.put("3",?new?Date());
		String?mapJson?=?JSON.toJSONStringWithDateFormat(map,?dataFormat);
		System.out.println(mapJson);
		String?mapJson2?=?JSON.toJSONStringWithDateFormat(map,?timeFormat);
		System.out.println(mapJson2);
	}

}

输出内容:

1470841566893
"2016-08-10?23:06:06"
"2016-08-10"
"2016-08-10?23:06:06?893"
{"3":"2016-08-10","2":"2016-08-10","1":"2016-08-10"}
{"3":"2016-08-10?23:06:07?314","2":"2016-08-10?23:06:07?314","1":"2016-08-10?23:06:07?314"}

?

Java对象Map序列化和反序列化,代码案例:

package?com.what21.fastjson.fj02;

import?java.util.HashMap;
import?java.util.Map;

import?com.alibaba.fastjson.JSON;

/**
?*?测试Main方法
?*/
public?class?FastJsonObjMain?{

	/**
	?*?@param?args
	?*/
	public?static?void?main(String[]?args)?{
		Map<String,User>?userMap?=?new?HashMap<String,User>();
		User?zsUser?=?new?User();
		zsUser.setId("zhangsan");
		zsUser.setName("张三");
		userMap.put("one",?zsUser);
		//?用户二
		User?lsUser?=?new?User();
		lsUser.setId("lisi");
		lsUser.setName("李四");
		userMap.put("two",?lsUser);
		
		String?jsonString?=?JSON.toJSONString(userMap);
		System.out.println("Map?to?JSON?->?");
????????System.out.println(jsonString);
	}

}

输出内容:

Map?to?JSON?->?
{"one":{"id":"zhangsan","name":"张三"},"two":{"id":"lisi","name":"李四"}}

(编辑:李大同)

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

    推荐文章
      热点阅读