Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发。功能很强大,在开发中可以对JSON数据进行很好的处理。
常用的方法如下:
// 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object);
// 将JavaBean序列化为带格式的JSON文本
public static final String toJSONString(Object object, boolean prettyFormat);
//将JavaBean转换为JSONObject或者JSONArray。
public static final Object toJSON(Object javaObject);
//把JSON文本parse成JSONArray
public static final JSONArray parseArray(String text);
//把JSON文本parse成JavaBean集合
public static final <T> List<T> parseArray(String text, Class<T> clazz);
// 把JSON文本parse成JSONObject
public static final JSONObject parseObject(String text);
// 把JSON文本parse为JavaBean
public static final <T> T parseObject(String text, Class<T> clazz);
// 把JSON文本parse为JSONObject或者JSONArray
public static final Object parse(String text);
案例如下:
涉及到两个类,User,Group.
import java.util.List;
import org.junit.Test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class TestJSON {
@Test
public void test1(){
User user = new User();
user.setId(1);
user.setName("zhang");
Group group = new Group();
group.setGroupId(2);
group.setGroupName("groupName");
group.getListUser().add(user);
/**
*将JavaBean序列化为JSON文本
* public static final String toJSONString(Object object);
* result:{"groupId":2,"groupName":"groupName","listUser":[{"id":1,"name":"zhang"}]}
* 将JavaBean序列化为带格式的JSON文本
* public static final String toJSONString(Object object, boolean prettyFormat)
*/
String objToStr = JSON.toJSONString(group);
String objToStrWithFormat = JSON.toJSONString(group,true);
/**
* 将JavaBean转换为JSONObject或者JSONArray
* public static final Object toJSON(Object javaObject);
*/
JSONObject jsonObjectGroup = (JSONObject) JSON.toJSON(group);
/**
* 把JSON文本parse成JSONArray
* public static final JSONArray parseArray(String text);
* 把JSON文本parse成JavaBean集合
* public static final <T> List<T> parseArray(String text, Class<T> clazz);
*/
JSONArray jsonArray = JSON.parseArray(jsonObjectGroup.get("listUser").toString());
List<User> users = JSON.parseArray(jsonObjectGroup.get("listUser").toString(), User.class);
for(User u : users){
System.out.println(u.getName());
}
}
}