Java 8 如何接收多个 JsonObject (非 JsonArray 格式)
{"status": "Pulling from dev/ly-mssp-auth-ui", "id": "2.2"} {"status": "Digest: sha256:065ac928d8b06e9571ca9aab52b9a5de70c45c019765c1d576c0ac748718a4ca"} {"status": "Status: Image is up to date for 192.168.2.78:5000/dev/ly-mssp-auth-ui:2.2"}
在 Java 8 中,可以使用 JsonReader 类来逐个读取多个 JsonObject,而不是 JsonArray 的格式。
首先,确保你已经引入了相关的 JSON 库,比如 Jackson 或 Gson。
然后,可以按照以下步骤来接收多个 JsonObject:
- 创建一个 JsonReader 对象,并传入一个 Reader 实例,用于读取 JSON 数据。
JsonReader reader = new JsonReader(new InputStreamReader(inputStream, \"UTF-8\"));
- 使用 JsonReader 的 beginObject() 方法开始读取一个 JsonObject。
reader.beginObject();
- 使用 JsonReader 的 hasNext() 方法判断是否还有下一个属性。
while (reader.hasNext()) {
// 读取属性名
String name = reader.nextName();
// 根据属性名读取属性值
// 可以根据需要调用适当的方法来解析不同类型的属性值,比如 nextString()、nextInt()、nextBoolean() 等
// 例如:String value = reader.nextString();
// 处理属性值
// ...
}
- 使用 JsonReader 的 endObject() 方法结束当前的 JsonObject 的读取。
reader.endObject();
- 重复步骤 2-4,直到没有更多的 JsonObject 可读取。
完整的示例代码如下:
try {
JsonReader reader = new JsonReader(new InputStreamReader(inputStream, \"UTF-8\"));
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
// 处理属性值
// ...
}
reader.endObject();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
注意:这个示例假设你已经有一个 InputStream 对象来读取 JSON 数据。你需要根据实际情况来获取输入流,比如从文件、网络或其他来源读取 JSON 数据。
原文地址: https://www.cveoy.top/t/topic/p8PI 著作权归作者所有。请勿转载和采集!