[英]How to check if JSON respone returns [ ] or response with body using Java?
我有一个 API,它针对不同的事件 ID 多次命中。
很少有约会,也很少有人没有。 我收到此错误:
块编码消息体过早结束:预期关闭块
这是我的代码:
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 条件”中,例如:
if (string != null || !string.equals("[]")) {
// your code
}
但这不是通用方法,因此您的代码与所有类型的答案都不兼容。
您是否尝试过检查 json 对象长度是否为零?
例如。
if(ent.length == 0){
//Do thing
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.