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
好用的方法還有很多,下次整理在補充……