一,項目場景:
如下圖,在傳輸過程中報錯。解決方法如下:
二,問題描述
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING
三,原因分析:
原因是Json解析的錯誤。報錯位置為:
将json字元串轉換成UserBean對象
results對應的應該是一個實體類,如果這個時候想把他解析為String或者List就會出現異常。
原因歸根結底接受JSON的格式錯誤,我初步懷疑為編碼格式,因為之前我的電腦在utf-8和GBK格式來回切換,給編譯器幹歇菜了,結果不是編碼格式傳輸問題。
檢查JSON資料規範即可。
四,解決方案:
這裡的問題是:
使用者端解釋有json格式轉換。将user對象轉換成字元串,結果,服務端這邊傳輸格式為String,是以,理所當然的報錯了。
主要的還是檢查JSON格式,規範等。
解決代碼如下:
Gson gson=new Gson();
String data=gson.toJson(user);//将user對象轉換成字元串
System.out.println("json字元串:"+data);
json字元串:{“username”:“2”,“password”:“5”}