Fastjson

来源:互联网 发布:榕基软件千股千评 编辑:程序博客网 时间:2024/06/05 19:36
1、fastjson是什么?

fastjson是alibaba开源的json解析库,专门用来处理各种json字符串,支持json的序列化和反序列化


2、fastjson的优势?

使用简单、使用广泛、处理json的速度快、生态圈稳定


3、fastjson获取?

maven中央仓库:http://central.maven.org/maven2/com/alibaba/fastjson/
maven项目中直接添加依赖即可
<dependency>     <groupId>com.alibaba</groupId>     <artifactId>fastjson</artifactId>     <version>1.2.21</version></dependency>

4、fastjson的常用API


反序列化
public static <T> List<T> parseArray(String text, Class<T> clazz)public static <T> T parseObject(String text, Class<T> clazz)

序列化
public static String toJSONString(Object object)

5、fastjson实例
public class Test {    public static void main(String[] args) {        String json = "[{\"prizeType\": \"1\",\"prizeCode\": \"171102162012\"}, {\"prizeType\": \"2\",\"prizeCode\": \"1711141124238734\"}]";        JSONArray arrays = JSON.parseArray(json);        for (int i = 0; i < arrays.size(); i++) {            Price price = JSON.parseObject(arrays.get(i).toString(), Price.class);            System.out.println(price);        }        List<Price> prices = JSON.parseArray(json, Price.class);        System.out.println(prices);        Price price = new Price();        price.setPrizeCode("565464");        price.setPrizeType("2");        String res = JSON.toJSONString(price);        System.out.println(res);    }}
public class Price {    private String prizeType;    private String prizeCode;    public String getPrizeType() {        return prizeType;    }    public void setPrizeType(String prizeType) {        this.prizeType = prizeType;    }    public String getPrizeCode() {        return prizeCode;    }    public void setPrizeCode(String prizeCode) {        this.prizeCode = prizeCode;    }    @Override    public String toString() {        return "Price{" +                "prizeType='" + prizeType + '\'' +                ", prizeCode='" + prizeCode + '\'' +                '}';    }}

6、fastjson处理日期
String date = JSON.toJSONStringWithDateFormat(new Date(), "yyyy-MM-dd HH:mm:ss")

7、fastjson处理超大json数据

超大json对象序列化
JSONWriter writer = new JSONWriter(new FileWriter("/usr/local/temp.json"));writer.startObject();for (int i = 0; i < 1000 * 1000; ++i) {    writer.writeKey("x" + i);    writer.writeValue(new VO());}writer.endObject();writer.close();

超大json数组序列化
JSONWriter writer = new JSONWriter(new FileWriter("/usr/local/temp.json"));writer.startArray();for (int i = 0; i < 1000 * 1000; ++i) {    writer.writeValue(new VO());}writer.endArray();writer.close();

超大数组反序列化
JSONReader reader = new JSONReader(new FileReader("/usr/local/temp.json"));reader.startArray();while (reader.hasNext()) {    VO vo = reader.readObject(VO.class);    // TODO ...}reader.endArray();reader.close();

超大对象反序列化
JSONReader reader = new JSONReader(new FileReader("/usr/local/temp.json"));reader.startObject();while (reader.hasNext()) {    String key = reader.readString();    VO vo = reader.readObject(VO.class);    // handle vo ...}reader.endObject();reader.close();
原创粉丝点击