更新时间:2018年12月13日14时38分 来源:传智播客 浏览次数:
Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。
maven工程可以在pom文件加入依赖
<dependency>     <groupId>com.alibaba</groupId>     <artifactId>fastjson</artifactId>     <version>1.2.21</version></dependency>fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parseObject。
常用的序列化操作都可以在JSON类上的静态方法直接完成。
// 把JSON文本parse为JSONObject或者JSONArray public static final Object parse(String text);// 把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成JSONArray public static final JSONArray parseArray(String text);//把JSON文本parse成JavaBean集合 public static final <T> List<T> parseArray(String text, Class<T> clazz);// 将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);//序列化: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>>() {});下面贴出自己代码,相当于是FastJson使用操作的一个集合,基本上满足开发中绝大部分的json解析和拼接了。
package heima.itcast.demo;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.TypeReference;import heima.itcast.demo.model.Book;import java.util.*;public class Test {    public static void main(String[] args) {        //String转化为实体类Book        StrToObject();        //String转化为jsonObject        StrToJsonObject();        //实体类转换为json        //多个实体类转换为json数组形式的string        //String转化为List<Book>        StrToListObject();        //String转化为数组        //String转化为ArrayList        StrToArrayList();        //map和json互相转换        mapTo();    }    /**     * String转化为实体类Book     */    public static void StrToObject() {        StringBuilder sb = new StringBuilder();        sb.append("{");        sb.append("\"name\": \"教父三部曲\",");        sb.append(" \"author\": \"马里奥·普佐\",");        sb.append("  \"price\": \"100\"");        sb.append("}");        Book book = JSON.parseObject(sb.toString(), Book.class);        System.out.println("书名:"+book.getName()+";作者:"+book.getAuthor()+";价格:"+book.getPrice());    }    /**     * String转化为jsonObject     */    public static void StrToJsonObject() {        StringBuilder sb = new StringBuilder();        sb.append("{");        sb.append("\"name\": \"教父三部曲\",");        sb.append(" \"author\": \"马里奥·普佐\",");        sb.append("  \"price\": \"100\"");        sb.append("}");        JSONObject jsonObj = JSON.parseObject(sb.toString());        for(Map.Entry<String, Object> entry : jsonObj.entrySet()){            System.out.println(entry.getKey()+"--"+entry.getValue());        }    }    /**     * 实体类转换为json     * 多个实体类转换为json数组形式的string     * String转化为List<Book>     */    public static void StrToListObject() {        List<Book> bookList =  new ArrayList<>();        Book book1 = new Book("教父三部曲","马里奥·普佐",100) ;        Book book2 = new Book("天才在左疯子在右","高铭",30) ;        bookList.add(book1);        bookList.add(book2);        //实体类转换为json        String book1Str = JSON.toJSONString(book1);        //多个实体类转换为json数组形式的string        String bookStr = JSON.toJSONString(bookList);        //String转化为List<Book>        List<Book> bookList3 = JSON.parseArray(bookStr,Book.class);    }    /**     * String转化为数组     * String转化为ArrayList     */    public static void StrToArrayList(){        StringBuilder sb = new StringBuilder();        sb.append("[{");        sb.append("\"name\": \"教父三部曲\",");        sb.append(" \"author\": \"马里奥·普佐\",");        sb.append("  \"price\": \"100\"");        sb.append("}]");        // String转化为数组        Book[] arrBook = JSON.parseObject(sb.toString(),new TypeReference<Book[]>(){});        List<Book> list = Arrays.asList(arrBook);        for (int i = 0; i < arrBook.length; i++) {            System.out.println(arrBook[i].toString());        }        // String转化为ArrayList        ArrayList<Book> bookList=  JSON.parseObject(sb.toString(),new TypeReference<ArrayList<Book>>(){});        for(Book book : bookList){            System.out.println(book.toString());        }    }    /**     * map和json互相转换     */    public static void mapTo(){        Map<String,String> map = new HashMap<>();        map.put("name", "教父三部曲");        map.put("author", "马里奥·普佐");        map.put("price", "100");        //map转换为json        String json = JSON.toJSONString(map);        //json转换为map        Map map1 = JSON.parseObject(json);        System.out.println(map1.toString());        Map<String,String> map2 = (Map<String,String>)JSON.parse(json);    }}package heima.itcast.demo.model;public class Book {    private String name;    private String author;    private int price;    public Book() {    }    public Book(String name, String author, int price) {        this.name = name;        this.author = author;        this.price = price;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAuthor() {        return author;    }    public void setAuthor(String author) {        this.author = author;    }    public int getPrice() {        return price;    }    public void setPrice(int price) {        this.price = price;    }}