Fastjson是阿里巴巴内部开发的用于java后台处理json格式数据的一个工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
1).速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。包括自称最快的jackson。
2).功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。
3).无依赖,能够直接运行在Java SE 5.0以上版本
4).支持Android。
5).开源 (Apache 2.0)
package fastJson.test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class FastJsonTest {
/**
* 序列化
*/
public void toJsonString() {
User user = new User("testFastJson001", "maks", 105);
String text = JSON.toJSONString(user);
System.out.println("toJsonString()方法:text=" + text);
}
/**
* 反序列化为json对象
*/
public void parseJsonObject() {
String text = "{\"age\":105,\"id\":\"testFastJson001\",\"name\":\"maks\"}";
JSONObject json = JSON.parseObject(text);
System.out.println("parseJsonObject()方法:json==" + json);
}
/**
* 反序列化为javaBean对象
*/
public void parseBeanObject() {
String text = "{\"age\":105,\"id\":\"testFastJson001\",\"name\":\"maks\"}";
User user = (User) JSON.parseObject(text, User.class);
System.out.println("parseBeanObject()方法:user==" + user.getId() + "," +
user.getName() + "," + user.getAge());
}
/**
* 将javaBean转化为json对象
*/
public void bean2Json() {
User user = new User("testFastJson001", "maks", 105);
JSONObject jsonObj = (JSONObject) JSON.toJSON(user);
System.out.println("bean2Json()方法:jsonObj==" + jsonObj);
}
/**
* 全序列化 直接把java bean序列化为json文本之后,
* 能够按照原来的类型反序列化回来。支持全序列化,
* 需要打开SerializerFeature.WriteClassName特性
*/
public void parseJSONAndBeanEachother() {
User user = new User("testFastJson001", "maks", 105);
SerializerFeature[] featureArr = { SerializerFeature.WriteClassName };
String text = JSON.toJSONString(user, featureArr);
System.out.println("parseJSONAndBeanEachother()方法:text==" + text);
User userObj = (User) JSON.parse(text);
System.out.println("parseJSONAndBeanEachother()方法:userObj==" +
userObj.getId() + "," + userObj.getName() + "," + userObj.getAge());
}
}
fastJson 遍历数组json
import java.util.*;
import com.alibaba.fastjson.*;
public class Test {
public static void main(String[] args) {
//方法1
String json = "[{\"companyId\":\"111111111\",\"companyName\":\"Huuuu\",
\"_uid\":10,\"_index\":0,\"_state\":\"modified\"},{\"companyId\":
\"000000000000000000\",\"companyName\":\"cx01\",\"_uid\":11,\"_index\":1,
\"_state\":\"modified\"},{\"companyId\":\"9999999999999\",\"companyName\":
\"ttt\",\"_uid\":12,\"_index\":2,\"_state\":\"modified\"}]";
List<HashMap> list =JSON.parseArray(json, HashMap.class);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).get("companyId"));;
}
//方法2
/*
JSONArray jarr = JSONArray.parseArray(json);
for (Iterator iterator = jarr.iterator(); iterator.hasNext();) {
JSONObject job = (JSONObject) iterator.next();
System.out.println(job.get("companyId").toString());
}*/
}
}
http://blog.csdn.net/hu_shengyang/article/details/8447213
http://blog.csdn.net/u010131956/article/details/45339705