在Android開發中,我們常常會使用到Json數據格式來傳遞和存儲數據。而Gson是Google提供的一個開源的Java庫,用于將Json字符串轉換為Java對象和將Java對象轉換為Json字符串。
使用Gson解析Json數據時,有時會遇到一些異常情況。下面介紹幾種常見的Gson解析Json異常。
try { Gson gson = new Gson(); String jsonStr = "{\"name\":\"張三\",\"age\":18}"; Person person = gson.fromJson(jsonStr, Person.class); } catch (JsonSyntaxException e) { e.printStackTrace(); }
1. JsonSyntaxException:Json格式錯誤異常
當Json字符串中包含不合法字符或格式不正確時,將會拋出JsonSyntaxException異常。
try { Gson gson = new Gson(); String jsonStr = "{\"name\":\"張三\",\"age\":\"18\"}"; Person person = gson.fromJson(jsonStr, Person.class); } catch (NumberFormatException e) { e.printStackTrace(); }
2. NumberFormatException:數字格式錯誤異常
當Json字符串中的數字格式不正確時,將會拋出NumberFormatException異常。
try { Gson gson = new Gson(); String jsonStr = "{\"name\":\"張三\",\"age\":18}"; JsonElement jsonElement = gson.fromJson(jsonStr, JsonElement.class); JsonObject jsonObject = jsonElement.getAsJsonObject(); String phone = jsonObject.get("phone").getAsString(); } catch (NullPointerException e) { e.printStackTrace(); }
3. NullPointerException:空指針異常
當Json字符串中不存在某個字段時,直接調用該字段會拋出NullPointerException異常。
4. IllegalStateException:狀態異常
當Json字符串中的數據類型與Java對象中的字段類型不一致時,將會拋出IllegalStateException異常。
在使用Gson解析Json數據時,需要注意Json字符串格式的正確性和Java對象的定義是否與Json字符串中的數據類型一致。
下一篇vue 2014.5