一、Fastjson用法匯總
Fastjson是一款高性能的JSON解析器和生成器,它採用一種類似於Google Gson的JSON+反射的方式進行對象的序列化和反序列化,支持Java序列化和反序列化,可以將Java對象轉化為JSON格式的字符串,也可以將JSON格式的字符串轉化為Java對象。Fastjson不僅提供了簡單的序列化和反序列化方法,還支持類型轉換,泛型、對象交叉引用等高級特性。下面將從Fastjson最新版本、Fastjson怎麼下載、Fastjson的使用、Fastjson是幹嘛用的、Fastjson版本、Fastjson註解、Fastjson最新版、Fastjson註解有哪些等多個方面對Fastjson用法進行詳細的闡述。
二、Fastjson最新版本
Fastjson最新版本是1.2.78,它可以在Maven倉庫中進行下載。如果您採用的是Gradle構建工具,只需在項目的build.gradle文件中添加以下依賴即可:
dependencies { compile 'com.alibaba:fastjson:1.2.78' }
三、Fastjson怎麼下載
除了在Maven倉庫中下載Fastjson外,也可以在阿里巴巴官方網站上進行下載。具體步驟如下:
1、打開網址:https://github.com/alibaba/fastjson
2、選擇一個你需要的版本,點擊下載即可。
3、解壓下載的文件,將fastjson的jar包添加到你的項目的classpath中即可開始使用。例如在Eclipse中添加jar包的方法:將fastjson的jar包拖拽到Eclipse中就行了。
四、Fastjson的使用
Fastjson的使用非常簡單,只需在Java對象上添加註解,然後調用Fastjson提供的序列化和反序列化方法即可。例如:
public class User { @JSONField(name = "u_id") private long id; @JSONField(name = "u_name") private String name; @JSONField(name = "u_birth", format = "yyyy-MM-dd HH:mm:ss") private Date birth; // 省略get和set方法 }
上述代碼是一個User類,其中使用了Fastjson的註解——@JSONField。這個註解用來指定JSON字符串中對應的字段名,以及Java對象屬性和JSON字符串中的字段名不一致的情況。Fastjson還提供了其他註解,可以用來控制序列化和反序列化時的格式、類型等。例如@JSONType、@JSONCreator、@JSONField、@JSONType等註解,這些註解在後續章節中會詳細解釋。
接下來是一個將Java對象轉化為JSON格式字符串的例子:
User user1 = new User(); user1.setId(1L); user1.setName("Tom"); user1.setBirth(new Date()); String jsonStr = JSON.toJSONString(user1); System.out.println(jsonStr); // 輸出:{"u_birth":"2019-08-01 10:00:00","u_id":1,"u_name":"Tom"}
上述代碼中,使用了Fastjson提供的toJSONString方法將Java對象user1轉化為JSON字符串。
下面是一個將JSON格式字符串轉化為Java對象的例子:
String jsonStr = "{\"u_id\":1,\"u_name\":\"Tom\",\"u_birth\":\"2019-08-01 10:00:00\"}"; User user2 = JSON.parseObject(jsonStr, User.class); System.out.println(user2.getName()); // 輸出:Tom
上述代碼中,使用了Fastjson提供的parseObject方法將JSON字符串jsonStr轉化為Java對象user2。
五、Fastjson是幹嘛用的
Fastjson主要用於Java程序和前端頁面之間的數據交互。使用Fastjson,我們可以方便地將Java對象轉化為JSON字符串,然後將JSON字符串發送給前端,前端可以對JSON字符串進行解析,然後將解析後的數據展現給用戶。同時,前端也可以將數據封裝成JSON字符串,然後通過Ajax等方式發送給後端,後端可以使用Fastjson將JSON字符串解析為Java對象,進行業務邏輯處理。
六、Fastjson版本
Fastjson的版本分為三個類型:RC版、穩定版和SNAPSHOT版。穩定版指的是經過多次測試和優化後的版本,所有的功能都已經實現,可以放心使用;RC版指的是已經被標記為即將發布的版本,預計在一個月左右發布;SNAPSHOT版是一個正在開發中的版本,可以用來測試Fastjson最新的功能。
七、Fastjson註解
在前面的章節中,已經提到過Fastjson的註解,這裡幾個常用的註解進行詳細的解釋:
1)@JSONField:用來指定Java對象屬性和JSON字符串中字段名的對應關係,以及對於時間類型的格式化。例如:
public class User { @JSONField(name = "u_id") private long id; @JSONField(name = "u_name") private String name; @JSONField(name = "u_birth", format = "yyyy-MM-dd HH:mm:ss") private Date birth; // 省略get和set方法 }
2)@JSONType:主要用來指定類的序列化和反序列化時的特性,包括序列化或反序列化時只序列化或反序列化某些字段等。例如:
@JSONType(ignores = {"password", "address"}) public class User { private long id; private String name; private String password; private String address; // 省略get和set方法 }
上述代碼中,使用了@JSONType註解指定了忽略password和address屬性。
3)@JSONCreator:可以用來指定反序列化時使用的構造函數。例如:
public class User { private long id; private String name; @JSONCreator public User(@JSONField(name = "id") long id, @JSONField(name = "name") String name) { this.id = id; this.name = name; } // 省略get和set方法 }
上述代碼中,使用了@JSONCreator註解指定了使用id和name參數創建User對象。
這只是Fastjson的部分註解,還有很多可以在具體使用中逐漸了解和掌握。
八、Fastjson最新版
Fastjson最新版本是1.2.78,它可以在Maven倉庫中進行下載。如果您採用的是Gradle構建工具,只需在項目的build.gradle文件中添加以下依賴即可:
dependencies { compile 'com.alibaba:fastjson:1.2.78' }
除了Maven倉庫之外,Fastjson全量jar包和源碼包還可以在GitHub上下載。GitHub地址:https://github.com/alibaba/fastjson
九、Fastjson註解有哪些
Fastjson中的註解有很多,在此只列舉部分常用註解,具體如下:
1)@JSONField:用於指定Java對象屬性和JSON字符串中字段名的對應關係,以及對於時間類型的格式化。
2)@JSONType:用於指定類的序列化和反序列化時的特性,包括序列化或反序列化時只序列化或反序列化某些字段等。
3)@JSONCreator:用於指定反序列化時使用的構造函數。
4)@JSONPOJOBuilder:用於指定反序列化時使用的Builder類。
5)@JSONField(serialize = false/serializeUsing = Serializer.class/deserializeUsing = Deserializer.class):用於指定Java對象屬性的序列化或反序列化時的特性。
6)@JSONField(name = “xxx”, ordinal = 0, serialize = false):用於指定Java對象屬性對應的JSON字符串中的字段名、順序、序列化或反序列化時的特性。
7)@JSONType(creator = Creator.class, deserializer = EasyCreateDeserializer.class, serializer = SpecializeSerializer.class):用於指定類的序列化和反序列化時使用的 Creator、Deserializer和Serializer。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301145.html