java - 解析字符串数组并选择特定节点值

标签 java json gson

这是作为字符串出现的,我必须使用最小行从中提取“消息”

已经尝试过 GSON、对象映射器

{
  "errors": [
    {
      "timestamp": "2019-10-17T10:45:26.276+0000",
      "message": "This is an error",
      "debugMessage": "not working"
    }
  ]
}

这是我迄今为止尝试过的代码

JsonParser parser = new JsonParser(); 
JsonElement element = parser.parse(response); 
JsonObject jsonObj = element.getAsJsonObject(); 
String errCode = jsonObj.get("errors").getAsString(); 

最佳答案

在上面的 JSON 示例中,errors 是一个 JsonArray

JsonArray errCode = jsonObj.get("errors").getAsJsonArray();

这是:

"errors": [
  {
  "timestamp": "2019-10-17T10:45:26.276+0000",
  "message": "This is an error",
  "debugMessage": "not working"
  }
]

然后从 JsonArray 中,您需要获取位于索引 0 处的第一个 JsonObject

JsonObject innerObj = errCode.get(0).getAsJsonObject();

这是:

{
  "timestamp": "2019-10-17T10:45:26.276+0000",
  "message": "This is an error",
  "debugMessage": "not working"
}

现在从 JsonObject 获取消息

String msg = innerObj.get("message").getAsString();

这是:

"message": "This is an error"

关于java - 解析字符串数组并选择特定节点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58436232/

相关文章:

java - Vaadin 中的 BeanFieldGroup 以 List<String> 作为逗号分隔的条目

php - 如何强制仅从 API 响应中提取 JSON 数据?

java - 如何从该字符串创建 JSONArray?

javascript - Aurelia PHP Post 请求为空 $_POST

java - Gson - 如何使用 JsonWriter?

android - Kotlin 字段覆盖和 GSON 反序列化 Unable to create converter class 异常

java - 平均方法数组提示

java - 将变量传递给方法 (Java)

java - 用于对支持插件的系统进行编程的资源

javascript - 无法删除具有空值的 JSON 项目