錯誤:預期為BEGIN_ARRAY,但實際為BEGIN_OBJECT
當Gson 需要JSON 物件數組,但遇到物件時,會發生此錯誤。
伺服器 URL 和請求:
伺服器 URL 傳回一個包含有關時區詳細資訊的 JSON 物件。該請求是使用 HttpClient 執行的。
Post 類別:
Post 類別定義一個 POJO 來表示 JSON 回應。它有一個屬性:timeZoneId。
錯誤原因:
發生錯誤是因為 Gson 配置為期望 Post 物件數組,但 JSON 回應是實際上是物件。
解決方案:
要解決該錯誤,請修改程式碼以處理單一Post 物件而不是陣列:
<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
這將指示Gson 將JSON 回應解析為單一Post 對象,這將不再觸發「Expected BEGIN_ARRAY」錯誤。
以上是如何修復 Gson 解析中的'Expected BEGIN_ARRAY but was BEGIN_OBJECT\”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!