gson將json轉為map的時候,出現型別轉換異常的解決方法
Type type = new TypeToken<Map<String, Object>>() {
}.getType();
Map<String, Object> dataMap = gson.fromJson(json, type);
呼叫以上程式碼把json串轉換為map時,如果json串中包含0、1等int型別的內容,map中將會轉成“0.0”、“1.0”等浮點型別。
可以通過一下方式消除這種型別轉換異常:
private static Gson gson = new GsonBuilder() .registerTypeAdapter( new TypeToken<TreeMap<String, Object>>(){}.getType(), new JsonDeserializer<TreeMap<String, Object>>() { @Override public TreeMap<String, Object> deserialize( JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { TreeMap<String, Object> treeMap = new TreeMap<>(); JsonObject jsonObject = json.getAsJsonObject(); Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet(); for (Map.Entry<String, JsonElement> entry : entrySet) { Object ot = entry.getValue(); if(ot instanceof JsonPrimitive){ treeMap.put(entry.getKey(), ((JsonPrimitive) ot).getAsString()); }else{ treeMap.put(entry.getKey(), ot); } } return treeMap; } }).create(); private static Type typeToken = new TypeToken<TreeMap<String, Object>>(){}.getType();
然後在轉換的地方這樣呼叫:
loadJSON(){
TreeMap<String, Object> map = gson.fromJson(json, typeToken);
//bodyMap.get("error").toString();
//Integer.parseInt(bodyMap.get("errno").toString());
}
相關推薦
gson將json轉為map的時候,出現型別轉換異常的解決方法
Type type = new TypeToken<Map<String, Object>>() { }.getType(); Map<String, Object> dataMap = gson.fromJson(
用java程式碼寫xml檔案時,出現中文亂碼的解決方法
phoneElement.addAttribute("name", "家庭電話");emailElement.setText("[email protected]");try {/*** 特別注意:* * java中有Writer類繼承下來的子類沒有提供編碼格式處理,所以dom4j也無法歲輸出的
關於使用renderInContext函式後,出現low memory warning解決方法
為了epub閱讀器的新需求--模擬翻頁,需要使用函式renderInContext進行截圖,然後做模擬特效。當功能實現之後,在用iPad進行功能測試的時候,發現當翻頁次數到10頁左右(在iPhone上測試是翻頁30次才會出現記憶體警告,原因在於iPhone上面的螢幕截圖比
linux斷電後,出現fsck失敗的解決方法
os啟動的時候,會有個檢查filesystem是否正確的操作,如果發現filesystem is inconsistent,就會自動執行fsck,導致filesystem inconsistent的最主要的原因是power off,就是我們說的硬關機。 執行f
調用 SSPI 失敗,請參見內部異常 解決方法
tro 解決方法 etc 分享 sys 棧跟蹤 net control provide 2017-11-12 12:49:53:706] OnServerConnectionAvailable error : System.Security.Authentication.A
devtools導致的型別轉換異常處理方法
問題描述: system.user.model.User cannot be cast to system.user.model.User 用了SpringBoot,整合了 Shrio 來做使用者的認證和授權,也引入了Mybatis的通用外掛等等。 起初並沒有遇到什麼困難,用Shir
記錄一次java.lang.ClassCastException的java型別轉換異常解決方案
自己的專案中,有個定時任務的模組,裡面需要將返回的物件強轉為某個實體類JobModel,可是在轉換的過程中,卻報出了java.lang.ClassCastException: com.jy.admin.server.mo
Assembly.LoadFrom載入程式集型別轉換失敗解決方法
為了讓我的wcf模組框架支援自定義通道上下文,對程式碼又進行了一次小型的重構,測試時發現型別轉換的錯誤,最後發現是loadfrom引起的。如果向 loadfrom 上下文中載入了一個程式集,則將啟用 loadfromcontext 託管除錯助手 (mda)。因為預設時載入程式集是在defaul上下文的,所以就
如何利用fastjson將JSON格式的字符串轉換為Map,再返回至前端成為js對象
數據結構 mem spring css 轉換 ring 註意 hash 結構 //註意,這裏的jsonStr是json格式的字符串,裏面如果遇到雙引號嵌套雙引號的,一般是嵌套的雙引號經過轉義 // \",假如有這樣的一個場景,這些字符串裏面有需要的css樣式的js對象
Java Gson 使用,Gson將字串轉為list
Gson 是 Google 提供的用來在 Java 物件和 JSON 資料之間進行對映的 Java 類庫。可以將一個 JSON 字串轉成一個 Java 物件,或者反過來。 物件轉為字串 String ps =gson.toJson(person); 字串轉為物件 Pers
net.sf.json.JSONObject轉為Bean時,Boolean型別轉換問題,待解決
java bean如下:import java.util.Date; public class CmFinancingProductRatePeriod { private Long id; private Long productId; pr
Gson將json資料直接轉為集合比如List(Kotlin版)
為了演示,我們新建一個簡單的資料類Person 資料類Person data class Person(var name: String = "", var age: Int = 0) json資料反序列化為普通物件 使用Gson將Json資料直接轉成普通實體類很簡單,如下
vue中的axios.post使用json資料傳輸,出現請求頭欄位內容型別是不被允許的情況的解決方案
問題描述: 由於restful介面需要在頭部header傳遞兩個欄位: Content-Type: application/json Access-Token: 84c6635800b14e0eba4f7ece65e095a1 但是,在vue.js裡面配置: 執行傳送的時候出現: 意思是
前端用json形式,實現了面向物件的程式設計,將json轉為CSV用於前端生成報表
前端程式碼的呼叫如下,封裝部分是怎麼寫的呢? JSonToCSV.setDataConver({ data: jsonData, fileName: '銷售資料',
FastJson用註解@JSONField將json轉為bean實體類,將bean實體類toString的時候欄位屬性名未變的錯誤分析
這個更新了兩次,跳過分析可以直接看分割線後面的內容,即可解決。 今天遇到了一個奇怪的問題,使用FastJson的註解@JSONField的時候,出現了一個奇怪的問題。 我將json通過FastJson轉為bean的時候,由於json有些欄
把jsonString(為json物件)轉為map,迴圈得到key,value
String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}"; //第一種方式 Map maps = (Map)JS
(精華)將json數組和對象轉換成List和Map(小龍哥和牛徳鶴的對話)
put span ray add sonar string val out 和數 將java標準的數據結構ArrayList和HashMap轉換成json對象和數組很簡單 只需要JSONArray.fromObject(obj);或者JSONObject.fromObjec
利用Gson將JSON數據進行格式化(pretty print)
div pretty string類型 overflow jsonp creat () one ons 我們可以利用Gson包將String類型的JSON數據進行格式化。 Gson gson = new GsonBuilder().setPrettyPrinting().
關於flexjson將json轉為javabean的使用
nsf 一個 turn new onu || encode port decode 關於flexjson將json轉為javabean的使用 import java.sql.Timestamp; import java.util.Date; import flexj
使用java8的lambda將list轉為map(轉)
實體 nts acc UNC illegal identity 簡潔 tps username 常用方式 代碼如下: public Map<Long, String> getIdNameMap(List<Account> accounts)