如何使用 Jackson JSON 验证 JSON

2022-09-01 00:26:05

我正在尝试使用Jackson JSON获取字符串并确定它是否是有效的JSON。任何人都可以建议使用代码示例(Java)吗?


答案 1

不确定您的用例是什么,但这应该这样做:

public boolean isValidJSON(final String json) {
   boolean valid = false;
   try {
      final JsonParser parser = new ObjectMapper().getJsonFactory()
            .createJsonParser(json);
      while (parser.nextToken() != null) {
      }
      valid = true;
   } catch (JsonParseException jpe) {
      jpe.printStackTrace();
   } catch (IOException ioe) {
      ioe.printStackTrace();
   }

   return valid;
}

答案 2

虽然 Perception 的答案可能满足许多需求,但有些问题它不会发现,其中之一是重复的键,请考虑以下示例:

String json = "{ \"foo\" : \"bar\", \"foo\" : \"baz\" }";

作为补充,您可以使用以下代码检查重复的密钥:

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY);
objectMapper.readTree(json);

它会引发重复键或其他错误。JsonProcessingException