Andoird——JSON經典異常:org.json.JSONException: Unterminated string at character

案發情景:

手機終端與Java以JSON數據格式方式進行數據交互;

出現異常完整信息如下:

Unterminated string at character 89 of {"events":[{"otherMsg":"java.lang.RuntimeException: Error receiving broadcast Intent  act
at org.json.JSONTokener.syntaxError(JSONTokener.java:451)
at org.json.JSONTokener.nextString(JSONTokener.java:219)
at org.json.JSONTokener.nextValue(JSONTokener.java:316)
at org.json.JSONObject.<init>(JSONObject.java:206)
at org.json.JSONTokener.nextValue(JSONTokener.java:319)
at org.json.JSONArray.<init>(JSONArray.java:126)
at org.json.JSONTokener.nextValue(JSONTokener.java:323)
at org.json.JSONObject.<init>(JSONObject.java:206)
at org.json.JSONObject.<init>(JSONObject.java:327)
at cn.eshore.statis.util.AndroidServletTest.main(AndroidServletTest.java:74)


經過測試得出結論:

發送JSON數據格式不正確,

即:

 手機終端那邊 拋出的異常信息然後直接放到Json字符串中,而異常信息裏面有多個換行或者空格以及特殊字符,然後再通過上報接口傳送到Java這邊,接着Java這邊解析時導致解析json報異常 。

簡單測試語句:

JSONObject js = new JSONObject("{\"events\":[{\"otherMsg\":\"java.lang.RuntimeException: Error receiving broadcast Intent  act");



解決方法:

規範化數據格式;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章