首页 > Java > java教程 > 正文

为什么在 Java 中解析 JSON 时出现'预期 BEGIN_ARRAY 但实际是 BEGIN_OBJECT”错误?

Patricia Arquette
发布: 2024-10-26 17:14:02
原创
400 人浏览过

Why Am I Getting a

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!