1. 程式人生 > >com.google.gson.stream.MalformedJsonException: Expected name at line 1 colum

com.google.gson.stream.MalformedJsonException: Expected name at line 1 colum

話不多說,用Gson進行解析後臺傳來的json資料時,因為需要模擬資料,就儲存了一份在string.xml檔案中,減少測試時多次進行網路請求,結果拿來解析一下,報了錯,如下:

Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2

之前總結了一些gson解析失敗的原因:

1. 實體類未指定訪問修飾符為 public 2. 實體類中的欄位未制定訪問修飾符為 public 3. 實體類中的欄位的 @SerializedName(value = myValue),其中myValue包含不該出現的空格

但是這次全部檢查,以上情況均未出現,頭大了,咋回事…不經意回到string.xml中看了一下儲存的字串,呵呵,原來被轉義了兩次,去除一層轉義之後,恢復正常。 so 現在要加上一種情況

1. 實體類未指定訪問修飾符為 public 2. 實體類中的欄位未制定訪問修飾符為 public 3. 實體類中的欄位的 @SerializedName(value = myValue),其中myValue包含不該出現的空格 4. 拿到的json資料有問題,有可能是被轉義兩次

本人不才,有錯忘指出。。。 你遇到過什麼情況呢?可以留言補充,互相學習。