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

FastJson简单使用

发布时间:2020-12-16 19:38:02 所属栏目:百科 来源:网络整理
导读:一个JSON库涉及的最基本功能就是序列化和反序列化。Fastjson支持java bean的直接序列化。使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。 1.序列化//将对象转换为JSON字符串 String str_json=JSON.toJSONString(info); 2.反序列化 //反序列化 Us

一个JSON库涉及的最基本功能就是序列化和反序列化。Fastjson支持java bean的直接序列化。使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。

1.序列化//将对象转换为JSON字符串
String str_json=JSON.toJSONString(info);

2.反序列化
//反序列化
UserInfo userInfo=JSON.parSEObject(json,UserInfo.class);

3、/**泛型的反序列化*/
String json="{"user":{"name":"zhangsan","age":25}}";
Map<String,UserInfoBean> map = JSON.parSEObject(json,new TypeReference<Map<String,UserInfoBean>>(){});

  1. //过滤哪些属性需要转换
  2. //SimplePropertyPreFilterfilter=newSimplePropertyPreFilter(Student.class,"id","age");
  3. //StringjsonStu=JSON.toJSONString(students,filter);

一. fastjson生成json字符串(JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>)

String jsonStrng = JSON.toJSONString(object);

二. fastjson 解析json字符串为四种类型

1. JavaBean

Person person = JSON.parSEObject(jsonString,Person.class);

2. List<JavaBean>

List<Person> listPerson =JSON.parseArray(jsonString,233)"> 3. List<String>

List<String> listString = JSON.parseArray(jsonString,String.class);

4. List<Map<String,Object>>

List<Map<String,Object>> listMap = JSON.parSEObject(jsonString,new TypeReference<List<Map<String,Object>>>(){}); (注意:此处可看出fastjson反射机制比gson更准确, id = 1001 通过fastjson反射仍是 id = 1001,而通过gson反射结果 为 id =1001.0,


一。简单的序列化

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
pubic class UserInfo implements Serializable{
private String name;
private int age;
public void setName(String name){
this .name=name;
}
public String getName(){
return name;
}
setAge( int age){
.age=age;
}
getAge(){
age;
}
}
class TestOne{
static main(String[] args){
UserInfo info= new UserInfo();
info.setName( "zhangsan" );
info.setAge( 24 );
//将对象转换为JSON字符串
String str_json=JSON.toJSONString(info);
System.out.println( "JSON=" +str_json);
}
}

二.复杂的数据类型

?
27
test2() {
HashMap<String,Object> map = HashMap<String,Object>();
map.put( "username" , );
"age" );
"sex" "男" );
//map集合
temp.put( "name" "xiaohong" );
"23" );
"girlInfo"
//list集合
List<String> list = ArrayList<String>();
list.add( "爬山" );
"骑车" );
"旅游" );
"hobby" /*JSON 序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串, [eg:String jsonString = JSON.toJSONString(map,SerializerFeature.UseSingleQuotes);]
*fastjson序列化时可以选择的SerializerFeature有十几个属性,你可以按照自己的需要去选择使用。
*/
String jsonString = JSON.toJSONString(map);
+ jsonString);
三.反序列化

?
14
test3(){
String json= "{"name":"chenggang","age":24}" ;
//反序列化
UserInfo userInfo=JSON.parSEObject(json,UserInfo. "name:" +userInfo.getName()+ ",age:" +userInfo.getAge());
}
/**泛型的反序列化*/
test4(){
"{"user":{"name":"zhangsan","age":25}}" ;
Map<String, TypeReference<Map<String,UserInfoBean>>(){});
System.out.println(map.get( "user" ));

//同理, json字符串中可以嵌套各种数据类型。

四.日期格式化

?
11
test5(){
Date date= Date();
//输出毫秒值
System.out.println(JSON.toJSONString(date));
//默认格式为yyyy-MM-dd HH:mm:ss
System.out.println(JSON.toJSONString(date,SerializerFeature.WriteDateUseDateFormat));
//根据自定义格式输出日期
System.out.println(JSON.toJSONStringWithDateFormat(date,56)!important; background:none!important">"yyyy-MM-dd"

这里举了几个简单的例子, 其它特殊要求可以根据FastJson的方法的说明,进行选择。 来自:http://blog.csdn.net/yuanjian19900610/article/details/37737087

(编辑:李大同)

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