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>>() {}); 以下是相关代码:
package json; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON; public class FastJsonDemo { private static String jsonObjectString; private static String jsonArrayString; public static void encode(){ 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.getUsers().add(guestUser); group.getUsers().add(rootUser); jsonObjectString=JSON.toJSONString(group); System.out.println("encode1---jsonObjectString:"+jsonObjectString); jsonArrayString=JSON.toJSONString(group.getUsers()); System.out.println("encode2---jsonArrayString:"+jsonArrayString); } public static void decode(String jsonObjectString,String jsonArrayString){ Group group=JSON.parseObject(jsonObjectString, Group.class); System.out.println("decode1---group.getId="+group.getId()); List<User> users=JSON.parseArray(jsonArrayString, User.class); System.out.println("decode2---users.size()="+users.size()); } public static void main(String[] args) { encode(); decode(jsonObjectString,jsonArrayString); } } 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; } } 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; } }
eclipse console输出如下:encode1---jsonObjectString:{"id":0,"name":"admin","users":[{"id":2,"name":"guest"},{"id":3,"name":"root"}]} encode2---jsonArrayString:[{"id":2,"name":"guest"},{"id":3,"name":"root"}] decode1---group.getId=0 decode2---users.size()=2