亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java FastJson使用教程

 更新時間:2020年10月10日 14:58:23   作者:拾階求上  
這篇文章主要介紹了如何使用FastJson,幫助大家將 Java 對象轉(zhuǎn)換為 JSON 格式,感興趣的朋友可以了解下

Fastjson 是一個 Java 庫,可以將 Java 對象轉(zhuǎn)換為 JSON 格式,當(dāng)然它也可以將 JSON 字符串轉(zhuǎn)換為 Java 對象。
Fastjson 可以操作任何 Java 對象,即使是一些預(yù)先存在的沒有源碼的對象。
Fastjson 源碼地址:https://github.com/alibaba/fastjson
Fastjson 擴展閱讀:https://www.w3cschool.cn/fastjson/

一、Fastjson 特性

  1. 提供服務(wù)器端、安卓客戶端兩種解析工具,性能表現(xiàn)較好。
  2. 提供了 toJSONString() 和 parseObject() 方法來將 Java 對象與 JSON 相互轉(zhuǎn)換。調(diào)用toJSONString方 法即可將對象轉(zhuǎn)換成 JSON 字符串,parseObject 方法則反過來將 JSON 字符串轉(zhuǎn)換成對象。
  3. 允許轉(zhuǎn)換預(yù)先存在的無法修改的對象(只有class、無源代碼)。
  4. Java泛型的廣泛支持。
  5. 允許對象的自定義表示、允許自定義序列化類。
  6. 支持任意復(fù)雜對象(具有深厚的繼承層次和廣泛使用的泛型類型)。

二、FastJson 使用(配置 maven 依賴)

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

其中 x.x.x 是版本號,根據(jù)需要使用特定版本,建議使用最新版本。

三、創(chuàng)建 JSON 對象

創(chuàng)建 JSON 對象非常簡單,只需使用 JSONObject(fastJson提供的json對象) 和 JSONArray(fastJson提供json數(shù)組對象) 對象即可。
我們可以把JSONObject 當(dāng)成一個 Map<String,Object> 來看,只是 JSONObject 提供了更為豐富便捷的方法,方便我們對于對象屬性的操作。我們看一下源碼。

同樣我們可以把 JSONArray 當(dāng)做一個 List<Object>,可以把 JSONArray 看成 JSONObject 對象的一個集合。

此外,由于 JSONObject 和 JSONArray 繼承了 JSON,所以說也可以直接使用兩者對 JSON 格式字符串與 JSON 對象及 javaBean 之間做轉(zhuǎn)換,不過為了避免混淆我們還是使用 JSON。

@Test
public void whenGenerateJson_thanGenerationCorrect() throws ParseException {
  JSONArray jsonArray = new JSONArray();
  for (int i = 0; i < 2; i++) {
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("AGE", 10);
    jsonObject.put("FULL NAME", "Doe " + i);
    jsonObject.put("DATE OF BIRTH", "2016/12/12 12:12:12");
    jsonArray.add(jsonObject);
  }
  String jsonOutput = jsonArray.toJSONString();
}

四、JSON 字符串轉(zhuǎn)換為 Java 對象

現(xiàn)在我們已經(jīng)學(xué)會了如何創(chuàng)建 JSON 對象,以及如何將 Java 對象轉(zhuǎn)換為 JSON 字符串,接下來我們就需要了解如何解析 JSON

@Test
public void whenJson_thanConvertToObjectCorrect() {
  Person person = new Person(20, "John", "Doe", new Date());
  String jsonObject = JSON.toJSONString(person);
  Person newPerson = JSON.parseObject(jsonObject, Person.class);
   
  assertEquals(newPerson.getAge(), 0); // 如果我們設(shè)置系列化為 false
  assertEquals(newPerson.getFullName(), listOfPersons.get(0).getFullName());
}

五、fastjson 常用 API

fastjson API 入口類是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類上的靜態(tài)方法直接完成。

public static final Object parse(String text); // 把JSON文本parse為JSONObject或者JSONArray 
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject  
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse為JavaBean 
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 
public static final String toJSONString(Object object); // 將JavaBean序列化為JSON文本 
public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean序列化為帶格式的JSON文本 
public static final Object toJSON(Object javaObject); //將JavaBean轉(zhuǎn)換為JSONObject或者JSONArray。

六、JSONField與JSONType注解的使用

fastjson提供了JSONField對序列化與反序列化進行定制,比如可以指定字段的名稱,序列化的順序。

其中serializeUsing與deserializeUsing可以用于對字段的序列化與反序列化進行定制化。

以上就是Java FastJson使用教程的詳細(xì)內(nèi)容,更多關(guān)于Java FastJson的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java默認(rèn)方法sqrt實例用法

    java默認(rèn)方法sqrt實例用法

    在本篇文章里小編給大家分享的是一篇關(guān)于java默認(rèn)方法sqrt實例用法,對此有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-03-03
  • Java實現(xiàn)簡單的RPC框架的示例代碼

    Java實現(xiàn)簡單的RPC框架的示例代碼

    本篇文章主要介紹了Java實現(xiàn)簡單的RPC框架的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Java中枚舉的使用詳解

    Java中枚舉的使用詳解

    這篇文章主要介紹了Java中枚舉的使用詳解的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • idea前后跳轉(zhuǎn)箭頭的快捷鍵

    idea前后跳轉(zhuǎn)箭頭的快捷鍵

    這篇文章主要介紹了idea前后跳轉(zhuǎn)箭頭的快捷鍵,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • ElasticSearch學(xué)習(xí)之Es集群Api操作示例

    ElasticSearch學(xué)習(xí)之Es集群Api操作示例

    這篇文章主要為大家介紹了ElasticSearch學(xué)習(xí)之Es集群Api操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Java+mysql用戶注冊登錄功能

    Java+mysql用戶注冊登錄功能

    這篇文章主要為大家詳細(xì)介紹了Java結(jié)合mysql實現(xiàn)用戶注冊登錄功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Java8中Function接口的使用方法詳解

    Java8中Function接口的使用方法詳解

    在 Java 8 中,Function 接口是 java.util.function 包中的一個函數(shù)式接口,函數(shù)式接口是僅包含一個抽象方法的接口,適用于 Lambda 表達(dá)式或方法引用,本文給大家介紹了Java8的Function接口的使用方法,需要的朋友可以參考下
    2024-09-09
  • Spring Boot 快速入門指南

    Spring Boot 快速入門指南

    Spring 框架是非常著名的 Java 開源框架,歷經(jīng)十多年的發(fā)展,整個生態(tài)系統(tǒng)已經(jīng)非常完善甚至是繁雜,Spring Boot 正是為了解決這個問題而開發(fā)的,為 Spring 平臺和第三方庫提供了開箱即用的設(shè)置,只需要很少的配置就可以開始一個 Spring 項目
    2017-03-03
  • Java實現(xiàn)數(shù)組去除重復(fù)數(shù)據(jù)的方法詳解

    Java實現(xiàn)數(shù)組去除重復(fù)數(shù)據(jù)的方法詳解

    這篇文章主要介紹了Java實現(xiàn)數(shù)組去除重復(fù)數(shù)據(jù)的方法,結(jié)合實例形式詳細(xì)分析了java數(shù)組去除重復(fù)的幾種常用方法、實現(xiàn)原理與相關(guān)注意事項,需要的朋友可以參考下
    2017-09-09
  • 詳解Java8的forEach(...)如何提供index值

    詳解Java8的forEach(...)如何提供index值

    這篇文章主要介紹了詳解Java8的forEach(...)如何提供index值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論