java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 39 path $
我在使用retrofit和Gson配合時,出現了這個問題,疑惑中亂七八糟瞎搞了一個下午沒有解決。期間懷疑Gson解析不能使用泛型(因為我的解析使用了泛型),後來又覺得可能是我的關鍵字正好是解析器的某個關鍵字導致的異常,也打算過自定義Gson的解析過程,其實這些都不是。
第二天才搞明白,真正的問題是我的資料結構有問題,或者說我的解析出現了問題。
例如下面Json字串:
{"code":1,"info":"success","results":{"id":"1","name":"hehe"}}
results對應的應該是一個實體類,如果這個時候想把他解析為String或者List就會出現異常。
如果參考使用GsonForm處理後的資料模型,幾乎不會出現問題;加入result後面的內容可能在請求時會因為某些原因會存在格式上的變化,這個時候就有出現該異常的風險。Gson中,關鍵字後面出現""引起來的內容將會被只認為是STRING,“{}”只被認為是類,“[]”只被認為是List,這個幾乎是強制性的。
就是說如果你的實體預計是獲取String的變數,但是關鍵字後面對應的卻出現了“{”或“[”,那麼這個轉換將被認為是錯誤的,丟擲異常。
解決辦法:後臺輸出穩定的Gson格式。
相關推薦
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 39 path $
我在使用retrofit和Gson配合時,出現了這個問題,疑惑中亂七八糟瞎搞了一個下午沒有解決。期間懷疑Gson解析不能使用泛型(因為我的解析使用了泛型),後來又覺得可能是我的關鍵字正
android報錯 Expected BEGIN_OBJECT but was STRING at line 1 column 39 path $
我在使用retrofit和Gson配合時,出現了這個問題,疑惑中亂七八糟瞎搞了一個下午沒有解決。期間懷疑Gson解析不能使用泛型(因為我的解析使用了泛型),後來又覺得可能是我的關鍵字正好是解
Gson 解析Json資料時候報錯: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
Gson報錯資訊如下:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 colum
Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 1 path $ 解決辦法
使用AndroidStudio時電腦卡死,在我長按電源鍵強制關機再開啟電腦,開啟AndroidStudio。在我把專案匯入AVD或者實體手機時報錯 Caused by: com.google.gson.JsonSyntaxException: java.la
Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path 解決辦法
返回資料解析錯誤 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGI
Expected BEGIN_OBJECT but was BEGIN_ARRARY at line 1 column 2 path$異常解決方法
[ { "id": 1, "name": "移動開發", "alias": "mobile" }, { "id"
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was
可能的錯誤:1、bean類欄位型別和欄位名稱不一致。 2、伺服器訪問得到的字串不是純json前面有空格和回車等字元(難發現)。 3、如果訪問的json字串不是utf-8編碼時,用Gson解析會出這種問題,在日誌中列印會發現json的{}前面有亂碼字元,也需要注意一下。這是因
retrofit請求報錯:Expected a string but was BEGIN_OBJECT at line 1 column 2 path $
Expected a string but was BEGIN_OBJECT at line 1 column 2 path $ 這樣的錯,意思就是我想幫你解析成String而你返回的資料是一個物件,解析不了 需要把返回的物件String 給成JsonObject就可以了 如:C
Expected a string but was BEGIN_OBJECT at line 1 column 2 path $(不讓retrofit2自動替我解析json)
Expected a string but was BEGIN_OBJECT at line 1 column 2 path $ 這樣的錯,意思就是我想幫你解析成String而你返回的資料是一個物件(什麼?我明明是想單純返回String啊) 哎,String也是物件啊。那
一個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吧,一勞永逸,自己手動輸入
phoeni:java.lang.IllegalStateException: Expected single, aggregated KeyValue from coprocessor......
問題描述:select count(1) from webmagic_n.CASE_EMERGENCY ;報錯了! phoenix通過建立檢視對hbase中的表進行操作時,將hbase中的表刪除,但保留phoenix的檢視,然後重新建立hbase表並匯入資料,然後使用phoenix執行sq
springboot配置aop,啟動報錯java.lang.IllegalStateException:Expected raw type form 這類問題
springboot配置aop,啟動報錯java.lang.IllegalStateException: Expected raw type form of org.springframework.web.servlet.handler.AbstractHandlerMethodMapp
Gson解析出現類似錯誤,com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_AR
<span style="font-size:18px;">Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expe
logstash啟動報配置檔案錯誤Expected one of #, input, filter, output at line 1, column 1 (byte 1) after
執行環境:windows環境下在部署logstash到伺服器的時候遇到這個問題,就是配置檔案什麼的都寫好了執行,然後出錯如圖:然後根據提示去找配置檔案哪裡出現問題,配置檔案的圖如下:結果找了老半天沒發現錯誤,於是用命令:logstash -f ../config/logsta
java.lang.IllegalStateException: Optional int parameter 39;i39; is not present but cannot be translated
開發中訪問方法時報 java.lang.IllegalStateException: Optional int parameter 'i' is not present but cannot be translated into a null value due to being declared
Glide的 java.lang.RuntimeException: Expected instanceof GlideModule, but found:
問題一 在新增過混淆規則後,App打包的時候,發現報錯了 java.lang.RuntimeException: Expected instanceof GlideModule, but found: [email protected] at com.bumptech.gli
Gson 解析錯誤:Expected BEGIN_ARRAY but was BEGIN_OBJECT
解析錯誤: Expected BEGIN_ARRAY but was BEGIN_OBJECT { “msg”: “繫結成功!”, “code”: “0”, “data”: { “isbind”: “0”
java.lang.IllegalStateException: Optional int parameter 'currentSpecialIndex' is present but cannot
java.lang.IllegalStateException: Optional int parameter 'currentSpecialIndex' is present but cannot b
spring cloud feign:Caused by: java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0
use except app caused ise als stp lstat name 報錯之前: @RequestMapping(value = "hi", method = RequestMethod.GET)String hiService(@Request
解決kylin報錯:java.lang.IllegalStateException
util bstr map dex apach default current con str 一個kylin build job執行到第三步Extract Fact Table Distinct Columns時報錯: 2017-05-24 20:04:07,930