fastjson 常見方法

fastjson 常見方法

fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,來自阿里巴巴的工程師開發。

主要特點:

1、快速FAST(比其它任何基於Java的解析器和生成器更快,包括jackson) 強大(支持普通JDK類包括任意Java Bean

2、Class、Collection、Map、Date或enum) 零依賴(沒有依賴其它任何類庫除了JDK

一、練習方法前的準備

1.1、引入fastjson

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.8</version>
</dependency>

1.2、創建Book實體類

class Book{
    private static final long serialVersionUID = 1L;
    private String title ;
    private double price ;
    public Book(){}
    public Book(String title,double price){
        this.title = title ;
        this.price = price;
    }
    public String toString(){
        return "圖書名稱:"+this.title+" 、圖書價格:"+this.price;
    }

    //getter 、setter略
}

二、常用方法

2.1、指定類型轉爲JSON

  • toJSONString

方法:public static String toJSONString(Object object) {}

public static String toJSONString(Object object, boolean prettyFormat) {}是否帶JSON格式

實體類轉爲JSON

Book book = new Book("json解析",78.12);
String s = JSON.toJSONString(book);
System.out.println(s); //{"price":78.12,"title":"json解析"}

List集合轉爲JSON

List<Book> list = new ArrayList<>();
list.add(new java.awt.print.Book("JSON解析",65.23));
list.add(new java.awt.print.Book("微服務開發",89.34));
//不帶格式輸出
String s = JSON.toJSONString(list);
//帶格式輸出
String s1 = JSON.toJSONString(list, true);
/**
 * [
 *        {
 * 		"price":65.23,
 * 		"title":"JSON解析"
 *    },
 *    {
 * 		"price":89.34,
 * 		"title":"微服務開發"
 *    }
 * ]
 */
System.out.println(s1);
System.out.println(s); //[{"price":65.23,"title":"JSON解析"},{"price":89.34,"title":"微服務開發"}]

Map集合轉換JSON

Map<String ,Object> map = new HashMap<>();
map.put("username","張三");
map.put("sex","男");
String s = JSON.toJSONString(map);
System.out.println(s); //{"sex":"男","username":"張三"}
Map<String ,Object> map = new HashMap<>();
map.put("birthday","1995-3-2");
map.put("book",new Book("領域驅動設計",98.05));
String s = JSON.toJSONString(map);
System.out.println(s); //{"birthday":"1995-3-2","book":{"price":98.05,"title":"領域驅動設計"}}

2.2、將JSON轉爲指定類型

  • parseObject

方法:public static <T> T parseObject(String text, Class<T> clazz) {}

text:需要轉換的JSON

clazz:轉換的對象

JSON轉爲對象

String json = "{'title':'json解析','price':78.56}";
Book book = JSON.parseObject(json, Book.class);
System.out.println(book); //圖書名稱:json解析 、圖書價格:78.56

好用的方法還有很多,下次整理在補充……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章