如何使用 Jackson JSON 验证 JSON
我正在尝试使用Jackson JSON获取字符串并确定它是否是有效的JSON。任何人都可以建议使用代码示例(Java)吗?
我正在尝试使用Jackson JSON获取字符串并确定它是否是有效的JSON。任何人都可以建议使用代码示例(Java)吗?
不确定您的用例是什么,但这应该这样做:
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;
}
虽然 Perception 的答案可能满足许多需求,但有些问题它不会发现,其中之一是重复的键,请考虑以下示例:
String json = "{ \"foo\" : \"bar\", \"foo\" : \"baz\" }";
作为补充,您可以使用以下代码检查重复的密钥:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY);
objectMapper.readTree(json);
它会引发重复键或其他错误。JsonProcessingException