在Android 中使用GSON 進行JSON 解析:故障排除
在嘗試使用GSON 解析JSON 資料時,您遇到了錯誤,原因是意外的JSON 結構。讓我們更深入地研究問題並提供解決方案。
您嘗試解析的 JSON 結構似乎有一個根對象,但您沒有正確使用 Gson 的 fromJson 方法來讀取其內容。另請注意,Gson 並非設計為直接處理 UTF-8 字元。
正確的解析方法
要解決該錯誤,您需要將解析方法修改為如下:
<code class="java">public static <T> ArrayList<T> JsonParse(T t, InputStream inputStream) { ArrayList<T> lcs = new ArrayList<>(); try (JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF8"))) { reader.beginObject(); while (reader.hasNext()) { T cse = (T) gson.fromJson(reader, t.getClass()); lcs.add(cse); } reader.endObject(); } catch (Exception e) { e.printStackTrace(); } return (ArrayList<T>) lcs; }</code>
修改資料:
修改資料:相應地重新命名 getter 和 setter 方法(例如,getCount 和 setCount 而不是 getString 和 setString)。
更改 private ListresponseToClient.setContentType("application/json; charset=utf-8");UTF-8 處理確保您從伺服器收到的 JSON 回應格式正確為 UTF-8。您可以在 HTTP 回應中新增 MIME 類型標頭來指定正確的編碼,例如:透過考慮這些修改,您應該能夠在 Android 應用程式中使用 GSON 成功解析 JSON 資料。
以上是當 JSON 結構具有意外的根物件時,如何解決 Android 中 GSON 的 JSON 解析錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!