ByteArrayOutputStream result = new ByteArrayOutputStream();
while ((length = inputStream.read(buffer)) != -1) {
result.write(buffer, 0, length);
}
有没有办法确定结果是否包含 JSONObject 还是 JSONArray?我一直盲目地将它转换为 JSONObject,但是,我遇到了它是 JSONArray 的情况 - 任何帮助将不胜感激。
JSON API:使用更快的 jackson 和 org.json
提前致谢
最佳答案
JSR 353 引用实现
这些是 Maven 依赖项:
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
<scope>runtime</scope>
</dependency>
代码示例:
// the JSON classes have package javax.json
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// read JSON into baos
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
InputStreamReader isr = new InputStreamReader(bais, Charset.forName("UTF-8"));
JsonReader jr = Json.createReader(isr);
JsonStructure js = jr.read();
switch (js.getValueType()) {
case ARRAY:
break;
case OBJECT:
break;
case STRING:
break;
case NUMBER:
break;
case TRUE:
break;
case FALSE:
break;
case NULL:
break;
}
FasterXML jackson
(只是一个有效的示例,很可能不是“最好的”)
Maven 依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
代码示例:
// see JsonNodeType
new ObjectMapper().reader().readTree("[]").getNodeType();
关于java - 判断ByteArrayOutputStream的类型是JSONArray还是JSONObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43969853/