Google Gson使用小結
最近開始接觸使用Google Gson Library,個人覺得還是挺好用的,在這裡簡單介紹一下開發中 Gson的常用功能!
1.Serialize JSON
package com.ricky.java.gson; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.ricky.java.gson.bean.User; /** * How to Serialize and Deserialize JSON Data in Java * @author Ricky * */ public class GsonSerilize { public static void main(String[] args) { serializeObject(); serializeList(); } public static void serializeObject() { User user = new User(); user.setId(1001); // user.setName("Ricky"); user.setAge(25); Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create(); System.out.println(gson.toJson(user)); } public static void serializeList() { List<User> list = new ArrayList<User>(); User user = new User(); user.setId(1001); user.setName("Ricky"); user.setAge(25); list.add(user); User user2 = new User(); user2.setId(1002); user2.setName("Tim"); user2.setAge(24); list.add(user2); Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create(); System.out.println(gson.toJson(list)); } }
這裡主要用到了
Gson.toJson(Object src)可以方便的序列化Java物件,如 Bean、List、Map物件等等。
2.Deserialize JSONpackage com.ricky.java.gson; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.ricky.java.gson.bean.User; /** * How to Serialize and Deserialize JSON Data in Java * @author Ricky * */ public class GsonDeserilize { public static void main(String[] args) { deserializeObject(); deserializeList(); } public static void deserializeObject() { String json = "{\"id\":10010,\"name\":\"Ricky Feng\",\"age\":25}"; Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create(); User user = gson.fromJson(json, User.class); System.out.println(user); } public static void deserializeList() { String json = "[{\"id\":10010,\"name\":\"Ricky Feng\",\"age\":25},{\"id\":10011,\"name\":\"Mike\",\"age\":24}]"; Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create(); Type listType = new TypeToken<ArrayList<User>>(){}.getType(); List<User> list = gson.fromJson(json, listType); System.out.println(list); } }
這裡主要用到了
Gson.fromJson(String json, Class<User> classOfT) 非常方便的把JSON字串 反序列化成Java物件。
3.Parse JSON
package com.ricky.java.gson; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; /** * How to Parse JSON Data in Java With Gson * @author Ricky * */ public class GsonTest { public static void main(String[] args) { String json = "{\"Success\":true,\"Message\":\"Invalid access token.\"}"; //1.JsonParser.parse(String json); JsonParser jsonParser = new JsonParser(); JsonObject jo = (JsonObject)jsonParser.parse(json); boolean success = jo.get("Success").getAsBoolean(); System.out.println(success); String msg = jo.get("Message").getAsString(); System.out.println("msg="+msg); System.out.println("------------------"); //2.Gson.fromJson(String json, Class<JsonElement> classOfT); Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create(); JsonElement jelem = gson.fromJson(json, JsonElement.class); JsonObject jobj = jelem.getAsJsonObject(); //jelem.getAsJsonArray(); msg = jobj.get("Message").getAsString(); System.out.println("msg="+msg); boolean has = jobj.has("Status"); System.out.println("has="+has); } }
目前自己接觸到的Gson API就這麼多了,以後對Gson有更深入的瞭解會繼續更新!
相關推薦
Google Gson使用小結
最近開始接觸使用Google Gson Library,個人覺得還是挺好用的,在這裡簡單介紹一下開發中 Gson的常用功能! 1.Serialize JSON package com.ric
Could not find class com.google.gson.Gson
解析json jar ont .class exc 保存 題解 clean ext 在Android開發中使用gson解析json字符串,出現異常:java.lang.classnotfoundexception:com.google.gson.Gson。解決方案如下:
google ---gson字符串數組用GSON解析然後用逗號隔開拼接,去掉最後一個逗號
on() int gson解析 google stringbu main 解析 string 逗號 public static void main(String[] args) { String ss= "[{\"type\":\"0\",\"id\":\"123\"},
使用google-gson類庫解析json文件
exception 輸入 json對象 bsp main arr class jsonarray bject 使用google-gson類庫解析json文件 使用JsonParser解析器來解析字符串和輸入流,變成json對象 代碼如下: public class Rea
Multiple dex files define Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite;
write scan 項目 library 文件 查看 build file 解壓 開發中引入第三方 aar 時編譯同過,運行時出現問題: Multiple dex files define Lcom/google/gson/internal/Streams$Append
Android apk執行時錯誤java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient
最近在Hisi3751V500上移植一個新的專案,在執行gitv牌照方apk的時候提示java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient 06-03 17:44:28.966 I/dalvikvm( 36
一個jsonString引數的坑,com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGI
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_AR but was STRING at line 1 column 45 轉換的時候還是用gson吧,一勞永逸,自己手動輸入
com.google.gson.JsonSyntaxException: 2018-07-02T13:38:13.000Z
和移動端對接,系統報錯:com.google.gson.JsonSyntaxException: 2018-07-02T13:38:13.000Z 原因:使用 UTC 通用標準時,以z來標識 解決:拿我程式的程式碼舉例 Gson gson = new Gs
java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder;
背景 在SpringBoot2.0.3.RELEASE的專案中檔案中加入json的依賴後,啟動出現以下的異常資訊 <dependency> <groupId>com.google.code.gson</groupId> <
Google Gson 使用詳解
Gson Summary Java 解析 Json 最常用的類庫有:google 的 Gson、阿里巴巴的 FastJson、以及 Jackson。這些都是非常優秀而且常用的庫。 &nbs
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to java.lang.Int
異常:java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to java.lang.Integer 原因:SQL查詢結果為count()統計結果個數,gson返回資料為js
利用Google Gson實現JSON字串和物件之間相互轉換
最近一個專案需要用到JSON,需要在JSON字串和物件之間相互轉換,在網上找了些資料,發現google的Gson還是比較不錯的。 廢話不說,下面是簡單的例子: 先上原始碼:下載(包含jar包) Person實體類 package com.hsun.json; /** * Pe
com.google.gson.stream.MalformedJsonException: Expected name at line 1 colum
話不多說,用Gson進行解析後臺傳來的json資料時,因為需要模擬資料,就儲存了一份在string.xml檔案中,減少測試時多次進行網路請求,結果拿來解析一下,報了錯,如下: Caused by: co
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException使用GsonFormat,採坑記錄。
今天依舊從PostMan測試介面,拿JSON格式資料。使用GsonFormat進行格式轉換。 然後進行網路請求,但是執行程式,出現錯誤。 錯誤如下所示: com.google.gson.JsonSynt
com.google.gson.JsonArray 轉換成list
import java.util.ArrayList; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.
Google Gson使用指南
原文連結:http://www.jianshu.com/p/e740196225a4 JSON (官網) 是一種文字形式的資料交換格式,它比XML更輕量、比二進位制容易閱讀和編寫,調式也更加方便。其重要性不言而喻。解析和生成的方式很多,Java中最常用的類庫有:JS
Google Gson 禁止序列化內部類
本文內容大多基於官方文件和網上前輩經驗總結,經過個人實踐加以整理積累,僅供參考。 1 新建包含內部類的 POJO 類 public class User { private String account; private Stri
使用GSON丟擲com.google.gson.stream.MalformedJsonException異常
今天在用GSON解析json資料的時候,老是丟擲這個異常,意思是難看的json資料異常。 Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.Malfo
Program type already present: com.google.gson.FieldAttributes
錯誤如下圖 問題原因:工程重複引用了gson的jar包所致。 解決辦法:在build.gradle的dependencies中加入程式碼:作用就是去除重複gson包 dependencies
google-GSON解析和生成JSON資料
public class GsonDemo { public static void main(String[] args) { Map map = new HashMap(); map.put("name", "nam