最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java FastJson使用教程

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

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

一、Fastjson 特性

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

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

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

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

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

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

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

此外,由于 JSONObject 和 JSONArray 繼承了 JSON,所以說也可以直接使用兩者對(duì) JSON 格式字符串與 JSON 對(duì)象及 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 對(duì)象

現(xiàn)在我們已經(jīng)學(xué)會(huì)了如何創(chuàng)建 JSON 對(duì)象,以及如何將 Java 對(duì)象轉(zhuǎn)換為 JSON 字符串,接下來(lái)我們就需要了解如何解析 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); // 如果我們?cè)O(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對(duì)序列化與反序列化進(jìn)行定制,比如可以指定字段的名稱,序列化的順序。

其中serializeUsing與deserializeUsing可以用于對(duì)字段的序列化與反序列化進(jìn)行定制化。

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

相關(guān)文章

  • 如何剔除eureka無(wú)效和down狀態(tài)的問題

    如何剔除eureka無(wú)效和down狀態(tài)的問題

    這篇文章主要介紹了如何剔除eureka無(wú)效和down狀態(tài)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 你所不知道的Spring的@Autowired實(shí)現(xiàn)細(xì)節(jié)分析

    你所不知道的Spring的@Autowired實(shí)現(xiàn)細(xì)節(jié)分析

    這篇文章主要介紹了你所不知道的Spring的@Autowired實(shí)現(xiàn)細(xì)節(jié)分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-08-08
  • Hutool?Java工具類庫(kù)_ExcelUtil的使用

    Hutool?Java工具類庫(kù)_ExcelUtil的使用

    這篇文章主要介紹了Hutool?Java工具類庫(kù)_ExcelUtil的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java之mybatis使用limit實(shí)現(xiàn)分頁(yè)案例講解

    Java之mybatis使用limit實(shí)現(xiàn)分頁(yè)案例講解

    這篇文章主要介紹了Java之mybatis使用limit實(shí)現(xiàn)分頁(yè)案例講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java代碼實(shí)現(xiàn)微信頁(yè)面滾動(dòng)防露底(核心代碼)

    Java代碼實(shí)現(xiàn)微信頁(yè)面滾動(dòng)防露底(核心代碼)

    這篇文章主要介紹了Java代碼實(shí)現(xiàn)微信頁(yè)面滾動(dòng)防露底的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • Java?Stream.reduce()用法詳細(xì)解析

    Java?Stream.reduce()用法詳細(xì)解析

    Stream API提供了豐富的中間函數(shù),歸并函數(shù)和終端函數(shù),這些函數(shù)還支持并行化執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Java?Stream.reduce()用法的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 一學(xué)即會(huì)之JDK版本快速切換方法(2024)

    一學(xué)即會(huì)之JDK版本快速切換方法(2024)

    這篇文章主要介紹了一學(xué)即會(huì)之JDK版本快速切換方法,詳細(xì)給大家講解了如何下載、安裝和配置多個(gè)JDK版本,并通過設(shè)置環(huán)境變量和編寫批處理腳本來(lái)切換JDK版本,需要的朋友可以參考下
    2025-03-03
  • JPA的多表復(fù)雜查詢的方法示例

    JPA的多表復(fù)雜查詢的方法示例

    這篇文章主要介紹了JPA的多表復(fù)雜查詢的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 學(xué)習(xí)Java的static與final關(guān)鍵字

    學(xué)習(xí)Java的static與final關(guān)鍵字

    本篇文章給大家詳細(xì)分析了Java的static與final關(guān)鍵字知識(shí)點(diǎn)以及相關(guān)代碼分享,有需要的讀者跟著學(xué)習(xí)下吧。
    2018-03-03
  • 基于JAVA的短信驗(yàn)證碼api調(diào)用代碼實(shí)例

    基于JAVA的短信驗(yàn)證碼api調(diào)用代碼實(shí)例

    這篇文章主要為大家詳細(xì)介紹了基于JAVA的短信驗(yàn)證碼api調(diào)用代碼實(shí)例,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評(píng)論

长武县| 怀宁县| 屏东市| 滨州市| 黄骅市| 江安县| 子长县| 萝北县| 洪雅县| 江华| 黑水县| 山丹县| 石河子市| 通化市| 奉节县| 柞水县| 嘉峪关市| 扶绥县| 西充县| 仙桃市| 中阳县| 石河子市| 和林格尔县| 乐安县| 浮山县| 西畴县| 长寿区| 铁力市| 泾源县| 文安县| 都兰县| 白水县| 会理县| 博白县| 荆州市| 瑞安市| 蒲城县| 怀远县| 丹寨县| 扶余县| 松潘县|