JSON 解析错误:“预期为 BEGIN_ARRAY,但为 BEGIN_OBJECT”
在 Java 中,您遇到错误“预期为 BEGIN_ARRAY,但为 BEGIN_OBJECT” " 由于使用 Gson 解析时预期 JSON 结构与实际 JSON 结构不匹配。
JSON 结构
服务器提供的 JSON 响应不是一个数组,而是一个单个对象:
<code class="json">{ "dstOffset" : 3600, "rawOffset" : 36000, "status" : "OK", "timeZoneId" : "Australia/Hobart", "timeZoneName" : "Australian Eastern Daylight Time" }</code>
Gson 解析代码
但是,在您的代码中,您错误地假设 JSON 响应是 Post 对象的数组:
<code class="java">List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>
Gson 需要一个数组,因此在 JSON 响应中遇到 BEGIN_OBJECT 字符时会抛出错误。
解决方案
到解决错误,修改您的代码以期望单个 Post 对象:
<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
此更改将与实际的 JSON 结构保持一致并消除解析错误。
以上是为什么在 Java 中解析 JSON 时出现'预期 BEGIN_ARRAY 但实际是 BEGIN_OBJECT”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!