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

fastjson(二)基本使用

2018-01-25 20:46 435 查看
本节我们来介绍一下 fastjson 的基本使用

一、主要API

fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parseObject。

package com.alibaba.fastjson;

public abstract class JSON {
public static final String toJSONString(Object object);
public static final <T> T parseObject(String text, Class<T> clazz, Feature... features);
}


序列化:

String jsonString = JSON.toJSONString(obj);


反序列化:

VO vo = JSON.parseObject("...", VO.class);


泛型反序列化:

import com.alibaba.fastjson.TypeReference;

List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});


二、基本使用

User 类:

package json.fastjson.base;

public class User {

private Long id;
private String name;

public Long getId() {
return id;
}

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

public String getName() {
return name;
}

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

@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
}


Group 类:

package json.fastjson.base;

import java.util.ArrayList;
import java.util.List;

public class Group {

private Long id;
private String name;
private List<User> users = new ArrayList<User>();

public Long getId() {
return id;
}

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

public String getName() {
return name;
}

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

public List<User> getUsers() {
return users;
}

public void setUsers(List<User> users) {
this.users = users;
}

public void addUser(User user) {
users.add(user);
}

@Override
public String toString() {
return "Group [id=" + id + ", name=" + name + ", users=" + users + "]";
}
}


测试类:

package json.fastjson.base;

import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;

public class TestBase {

public static void main(String[] args) {
Group group = new Group();
group.setId(0L);
group.setName("admin");

User guestUser = new User();
guestUser.setId(2L);
guestUser.setName("guest");

User rootUser = new User();
rootUser.setId(3L);
rootUser.setName("root");

group.addUser(guestUser);
group.addUser(rootUser);

List<User> userList = group.getUsers();

// Group序列化
String jsonString = JSON.toJSONString(group);
System.out.println("Group序列化:" + jsonString);

// Group反序列化
jsonString = "{\"id\":0,\"name\":\"admin\",\"users\":[{\"id\":2,\"name\":\"guest\"},{\"id\":3,\"name\":\"root\"}]}";
group = JSON.parseObject(jsonString, Group.class);
System.out.println("Group反序列化:" + group);

// List序列化
jsonString = JSON.toJSONString(userList);
System.out.println("List序列化:" + jsonString);

// List泛型反序列化
jsonString = "[{\"id\":2,\"name\":\"guest\"},{\"id\":3,\"name\":\"root\"}]";
userList = JSON.parseObject(jsonString, new TypeReference<List<User>>() {});
System.out.println("List反序列化:" + userList);
}
}


输出结果:

Group序列化:{"id":0,"name":"admin","users":[{"id":2,"name":"guest"},{"id":3,"name":"root"}]}
Group反序列化:Group [id=0, name=admin, users=[User [id=2, name=guest], User [id=3, name=root]]]
List序列化:[{"id":2,"name":"guest"},{"id":3,"name":"root"}]
List反序列化:[User [id=2, name=guest], User [id=3, name=root]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: