您的位置:首页 > Web前端 > JavaScript

Fastjson示例代码

2016-01-17 21:41 746 查看
package com.wzc.test.Test;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializerFeature;

class User {
private int id;

private String name;

private Date birthday;

public int getId() {
return id;
}

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

public String getName() {
return name;
}

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

public Date getBirthday() {
return birthday;
}

public void setBirthday(Date birthday) {
this.birthday = birthday;
}

@Override
public String toString() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return "User [id=" + id + ", name=" + name + ", birthday=" + format.format(birthday) + "]";
}
}

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

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

// 序列化与反序列化数组
// 1. 准备数据
User user2 = new User();
user2.setId(2);
user2.setName("User2");
user2.setBirthday(new Date());
User[] array = new User[] { user, user2 };
// 2. 序列化
String arrayStr = 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
JSONArray jsonArray = JSON.parseArray(arrayStr);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
System.out.println(obj);
}
}
}
输出
{"birthday":1453037936843,"id":1,"name":"User"}

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

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

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

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

{birthday=1453037937054, name=User, id=1}

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

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

{"birthday":1453037936843,"name":"User","id":1}
{"birthday":1453037937057,"name":"User2","id":2}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  示例代码 fastjson