如何使用Java检查JSON respone是否返回[]或带有主体的响应?
我有一个API,针对不同的事件ID多次命中。如何使用Java检查JSON respone是否返回[]或带有主体的响应?,java,json,api,get,httpresponse,Java,Json,Api,Get,Httpresponse,我有一个API,针对不同的事件ID多次命中。 很少有人有日期,很少有人没有。 我得到这个错误: 块编码消息正文过早结束:应关闭块 这是我的密码: CloseableHttpClient client = HttpClients.createDefault(); HttpGet request = new HttpGet("my API URL"); System.out.println("request:"+request.getURI()); String list = request.ge
很少有人有日期,很少有人没有。 我得到这个错误: 块编码消息正文过早结束:应关闭块 这是我的密码:
CloseableHttpClient client = HttpClients.createDefault();
HttpGet request = new HttpGet("my API URL");
System.out.println("request:"+request.getURI());
String list = request.getURI().toString();
request.addHeader("Authorization",bearerToken); // Adding the bearer token
request.addHeader("Content-Type", "application/json");
CloseableHttpResponse response = client.execute(request);
//try
//{
System.out.println(response.getStatusLine());
System.out.println(response.getEntity().getContentLength());
HttpEntity ent = response.getEntity();
if(ent!=null)
{
//InputStream in = new PushbackInputStream(ent.getContent());
//in = new ByteArrayInputStream(EntityUtils.toByteArray(ent));
EntityUtils.consume(ent);
System.out.println(response.getEntity());
//in.close();
}
谁能告诉我哪里出了问题,或者我们该怎么做
如果我的响应没有数据,我只需打印它们,然后转到下一个事件ID并进行检查。我的一些API只返回[]。Java也是非常新的。当您使用json库时,它们通常有一些方法来检查json对象是否为空。 您可以在代码中使用它们,例如在JSONObject中,我们有一个isEmpty()方法,它返回一个布尔值,这正是您所需要的 此外,如果您的问题只是答案中的一个条件,请在检查不为空后将其放入“如果条件”,例如:
if (string != null || !string.equals("[]")) {
// your code
}
但这并不是一种通用的方法,因此您的代码不能和所有类型的答案兼容。当您使用json库时,它们通常有一些方法来检查json对象是否为空。 您可以在代码中使用它们,例如在JSONObject中,我们有一个isEmpty()方法,它返回一个布尔值,这正是您所需要的 此外,如果您的问题只是答案中的一个条件,请在检查不为空后将其放入“如果条件”,例如:
if (string != null || !string.equals("[]")) {
// your code
}
但这并不是一种通用的方法,因此您的代码不能与所有类型的答案兼容。您是否尝试过检查json对象长度是否为零 例如
您是否尝试过检查json对象长度是否为零 例如
是的,我也试过这个。我仍然没有得到打印的回复。是的,我也尝试过这个。我仍然没有得到打印的答复。