【发布时间】:2017-09-09 22:27:39
【问题描述】:
我正在编写一个函数来检查输入字符串是有效的 JSON 还是有效的 XML,或者两者都不是。我找到了一个帖子here。但显然帖子中的答案是不正确的,因为他们只检查字符串是否以< 或{ 开头,不能保证字符串是valid JSON 或valid XML。
我自己确实有一个解决办法,就是:
public static String getMsgType(String message) {
try {
new ObjectMapper().readTree(message);
log.info("Message is valid JSON.");
return "JSON";
} catch (IOException e) {
log.info("Message is not valid JSON.");
}
try {
DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(message)));
log.info("Message is valid XML.");
return "XML";
} catch (Exception e) {
log.info("Message is not valid XML.");
}
return null;
}
我想知道是否有更好或更短的解决方案?谢谢。
【问题讨论】: