java – 预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1876字,纯文字阅读大概需要3分钟。
内容图文
![java – 预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT](/upload/InfoBanner/zyjiaocheng/714/a7aa9823da2e45d69621c2b51ef52ee7.jpg)
我低于错误.
Failed to parse JSON due to: com.google.gson.JsonSyntaxException:
java.lang.IllegalStateException: Expected BEGIN_ARRAY but was
BEGIN_OBJECT at line 1 column 2
服务器URL
public static final String SERVER_URL = "https://maps.googleapis.com/maps/api/timezone/json?location=-37.8136,144.9631×tamp=1389162695&sensor=false";
执行请求
try {
// Create an HTTP client
HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(SERVER_URL);
// Perform the request and check the status code
HttpResponse response = client.execute(post);
StatusLine statusLine = response.getStatusLine();
if (statusLine.getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
try {
// Read the server response and attempt to parse it as JSON
Reader reader = new InputStreamReader(content);
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("M/d/yy hh:mm a");
Gson gson = gsonBuilder.create();
List<Post> postsList = Arrays.asList(gson.fromJson(reader,
Post[].class));
content.close();
for (Post p : postsList) {
System.out.println(p.timeZoneId);
}
} catch (Exception ex) {
System.out.println("Failed to parse JSON due to: " + ex);
}
} else {
System.out.println("Server responded with status code: "
+ statusLine.getStatusCode());
}
} catch (Exception ex) {
System.out
.println("Failed to send HTTP POST request due to: " + ex);
}
发表课程
public class Post {
public String timeZoneId;
public Post() {
}
}
我该怎么解决这个问题?
解决方法:
您在注释中声明返回的JSON是这样的:
{
"dstOffset" : 3600,
"rawOffset" : 36000,
"status" : "OK",
"timeZoneId" : "Australia/Hobart",
"timeZoneName" : "Australian Eastern Daylight Time"
}
你告诉Gson你有一个Post对象数组:
List<Post> postsList = Arrays.asList(gson.fromJson(reader,
Post[].class));
你没有. JSON代表一个Post对象,Gson告诉你.
将您的代码更改为:
Post post = gson.fromJson(reader, Post.class);
内容总结
以上是互联网集市为您收集整理的java – 预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT全部内容,希望文章能够帮你解决java – 预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。