中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Java FastJson

發布時間:2020-10-28 19:16:04 來源:億速云 閱讀:170 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關如何使用Java FastJson,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

一、Fastjson 特性

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

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

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

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

三、創建 JSON 對象

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

如何使用Java FastJson

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

如何使用Java FastJson

此外,由于 JSONObject 和 JSONArray 繼承了 JSON,所以說也可以直接使用兩者對 JSON 格式字符串與 JSON 對象及 javaBean 之間做轉換,不過為了避免混淆我們還是使用 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 字符串轉換為 Java 對象

現在我們已經學會了如何創建 JSON 對象,以及如何將 Java 對象轉換為 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); // 如果我們設置系列化為 false
  assertEquals(newPerson.getFullName(), listOfPersons.get(0).getFullName());
}

五、fastjson 常用 API

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

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轉換為JSONObject或者JSONArray。

六、JSONField與JSONType注解的使用

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

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

看完上述內容,你們對如何使用Java FastJson有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

司法| 井冈山市| 宜州市| 宁津县| 靖西县| 金沙县| 昭苏县| 平谷区| 兴安盟| 馆陶县| 望谟县| 广安市| 江山市| 云龙县| 吉安县| 哈尔滨市| 商都县| 望谟县| 灵璧县| 秀山| 南昌县| 高要市| 柯坪县| 崇文区| 五常市| 邳州市| 铁岭县| 张家港市| 波密县| 九寨沟县| 简阳市| 广州市| 贡嘎县| 长沙县| 罗源县| 锡林郭勒盟| 湟源县| 龙陵县| 株洲县| 新巴尔虎右旗| 静海县|