我需要将某个JSON
字符串转换为Java对象。我正在使用Jackson ObjectMapper来阅读JSON
。 JSON
字符串是这样的: -
"{"emailId":"gmail@rajnikant.com","accessToken":"accTok"}4".
当我使用objectMapper.readValue()
将JSON
字符串读取到特定目标类时,它应该抛出异常,因为JSON
字符串被附加到4.我应该怎么做这样只能读取有效的JSON,而在其他情况下会抛出异常吗?
答案 0 :(得分:0)
对于Jackson,GSON和其他人来说,只要}
之间包含的内容是有效的JSON,在最后{}
之后附加了一些字符的JSON字符串就是有效的JSON。
正如FasterXML(杰克逊)团队成员所说:
是。这是设计的。如果你想捕获这些问题,你需要构建
JsonParser
,手动推进它。多个根级别值的存在不被视为有效性问题。
参考:https://github.com/FasterXML/jackson-databind/issues/726
因此,如果您需要强制执行“干净”JSON,则必须使用您自己的功能扩展默认解析器。但是,IMO如果对默认解析器没问题,它也应该对你好(除非我们在这里处理一些语言间不兼容的情况)。