java objectmapper readvalue读错字符串

时间:2016-08-31 06:12:15

标签: java json

我需要将某个JSON字符串转换为Java对象。我正在使用Jackson ObjectMapper来阅读JSONJSON字符串是这样的: -

"{"emailId":"gmail@rajnikant.com","accessToken":"accTok"}4".

当我使用objectMapper.readValue()JSON字符串读取到特定目标类时,它应该抛出异常,因为JSON字符串被附加到4.我应该怎么做这样只能读取有效的JSON,而在其他情况下会抛出异常吗?

1 个答案:

答案 0 :(得分:0)

对于Jackson,GSON和其他人来说,只要}之间包含的内容是有效的JSON,在最后{}之后附加了一些字符的JSON字符串就是有效的JSON。

正如FasterXML(杰克逊)团队成员所说:

  

是。这是设计的。如果你想捕获这些问题,你需要构建JsonParser,手动推进它。多个根级别值的存在不被视为有效性问题。

参考:https://github.com/FasterXML/jackson-databind/issues/726

因此,如果您需要强制执行“干净”JSON,则必须使用您自己的功能扩展默认解析器。但是,IMO如果对默认解析器没问题,它也应该对你好(除非我们在这里处理一些语言间不兼容的情况)。