Gson-更新

      網友投稿 909 2025-04-01

      概述


      通用框架-網絡編程-Gson

      Gson 是 Google 提供的用來在 Java 對象和 JSON 數據之間進行映射的 Java 類庫。可以使 JSON 字符串 和 Java 對象之間相互轉換。

      官方文檔

      Gson目前托管在 github, https://github.com/google/gson

      Gson Goals

      提供簡單的的toJSON()和fromJson()方法,將Java對象到JSON,反之亦然

      允許預先存在的不可修改的對象和JSON之間相互轉換

      廣泛支持Java的泛型的

      允許對對象的自定義交涉

      支持任意復雜的對象(深繼承層次和廣泛使用泛型)

      Gson Download

      目前最新的版本為 2.6.2

      Gson Download downloads at Maven Central

      各種引用,按需使用。

      比如,我在android studio中使用Gson

      在項目的build.gradle中加入

      compile 'com.google.code.gson:gson:2.6.2'

      1

      然后同步即可自動下載Gson庫,即可在你的項目中使用Gson啦。

      Gson Documentation

      Gson API: Javadocs for the current Gson release

      我們可以下載到本地,方便查看

      Gson user guide: This guide contains examples on how to use Gson in your code.

      等等…..

      我們比較關心的就是這個API 了,入門最好的教程當然是官方提供的user guide了,下面我們就一步一步的來學習使用Gson。

      User Guide

      https://github.com/google/gson/blob/master/UserGuide.md

      Primitives Examples基本使用

      // Serialization 序列化 Gson gson = new Gson() ; System.out.println(gson.toJson(1));// 1 System.out.println(gson.toJson("abc")); // "abc" System.out.println(gson.toJson(new Long(10))); // 10 int[] values = {1 ,2,3}; String array2Gson = gson.toJson(values); System.out.println(array2Gson); // [1,2,3] // Deserialization 發序列化 int one = gson.fromJson("1", int.class); System.out.println(one); // 1 Integer one1 = gson.fromJson("1", Integer.class); System.out.println(one1);// 1 Long one2 = gson.fromJson("1", Long.class); System.out.println(one2);// 1 Boolean flag = gson.fromJson("false", Boolean.class); System.out.println(flag); // false String str = gson.fromJson("\"abc\"", String.class); System.out.println(str);// abc String[] arr =gson.fromJson("[\"abc\"]", String[].class); System.out.println(arr); // [Ljava.lang.String;@704d4834

      1

      2

      3

      4

      Gson-更新中

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      Object Examples 對象示例

      import com.google.gson.Gson; public class ObjectExamples { public static void main(String[] args) { BagOfPrimitives bagOfPrimitives = new BagOfPrimitives(); Gson gson = new Gson(); String result = gson.toJson(bagOfPrimitives); System.out.println(result); // {"value1":1,"value2":"abc","value3":["1","2","3","4"]} } static class BagOfPrimitives { private int value1 = 1; private String value2 = "abc"; private String[] value3 = { "1", "2", "3", "4" }; //當對象被序列化時(寫入字節序列到目標文件)時,transient阻止實例中那些用此關鍵字聲明的變量持久化; //當對象被反序列化時(從源文件讀取字節序列進行重構),這樣的實例變量值不會被持久化和恢復 private transient int value4 = 666; // 加了transient關鍵字不會被持久化,查看上面的輸出結果 public BagOfPrimitives() { super(); // no-args constructor } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      Note that you can not serialize objects with circular references since that will result in infinite recursion.

      請注意,您不能序列化循環引用的對象,因為這將導致無限遞歸。

      // Deserialization BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class); // ==> obj2 is just like obj

      1

      2

      3

      注意事項:

      推薦使用私有字段

      沒有必要使用任何注解以指示字段是被包含用于序列化和反序列化。在當前的類(和所有超類)的所有字段默認包含。

      如果一個字段被標記為transient,(默認的),它被忽略,不包括在JSON序列化和反序列化

      實現能夠正確處理空值

      序列化時,如果是個空字段,不會輸出

      在反序列化JSON的結果,缺少條目中的對象設置相應字段為空

      如果一個字段是合成的,它被忽略,不包括在JSON序列化和反序列化

      對應于內部類,匿名類和局部類外類的字段被忽略,并且不包括在序列化和反序列化

      Nested Classes (including Inner Classes) 嵌套類

      簡書上有個更好地介紹

      Java JSON

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel表格如何倒序排列
      下一篇:excel函數mid的使用教程
      相關文章
      亚洲国产精品成人综合色在线婷婷| 国产精品无码亚洲精品2021| 另类小说亚洲色图| 亚洲大香伊人蕉在人依线| 久久狠狠高潮亚洲精品| 亚洲福利视频导航| 亚洲国产综合91精品麻豆| 亚洲日本在线看片| 亚洲精品国产啊女成拍色拍| 亚洲第一二三四区| 亚洲一区二区影视| 亚洲妇女熟BBW| 亚洲日韩国产AV无码无码精品| 亚洲AV成人一区二区三区在线看| 亚洲综合偷自成人网第页色| 国产亚洲国产bv网站在线| 亚洲自国产拍揄拍| 亚洲日韩精品国产3区| 亚洲国产成人综合精品| 国产成人不卡亚洲精品91| 亚洲?V无码成人精品区日韩| 亚洲人成网站色在线入口| 亚洲伊人久久大香线蕉综合图片| 国产亚洲婷婷香蕉久久精品| 亚洲国产精品久久久久网站| 亚洲综合久久1区2区3区 | 亚洲av永久综合在线观看尤物| 亚洲H在线播放在线观看H| 亚洲熟妇成人精品一区| 久久精品熟女亚洲av麻豆| 亚洲日本中文字幕天堂网| 亚洲人成网站在线播放vr| 亚洲精品成人av在线| 亚洲伊人精品综合在合线| 亚洲乱理伦片在线观看中字| 亚洲 小说区 图片区 都市| 成人午夜亚洲精品无码网站| 亚洲成年轻人电影网站www| 亚洲毛片基地日韩毛片基地| 亚洲一级特黄特黄的大片| 风间由美在线亚洲一区|