配置Play / Jerkson以反序列化单引号(非标准)JSON,而无需复制大量代码

时间:2013-07-31 22:46:54

标签: json scala playframework-2.0 jackson jerkson

在Play 2.0应用程序中,我需要从一个我无法控制的源中反序列化一些JSON,这些源使用字符串周围的单引号 - 其中JSON规范要求使用双引号。

使用杰克逊的解决方案在这里: Configure Jackson to deserialize single quoted (invalid) JSON

但是试图在play2.0中实现这个解决方案我遇到了静态对象和私有类的问题......它应该足以将对象JerksonJson替换为在初始化时实现上面链接的解决方案,但因为它是静态的对象它不能被扩展,并且我尝试将它复制到我的代码中我需要拖动类PlaySerializers,PlayDeserializers,JsValueDeserializer,...我停在这里,因为它看起来太多了。

有干净的解决方案吗?

2 个答案:

答案 0 :(得分:0)

如何通过用“?

替换其中的每个'来尝试修复无效的json字符串

如果仅用于指定字符串,那将会有效。

答案 1 :(得分:0)

我意识到这对Play框架部分可能没什么帮助,但也许你可以使用Jackson Scala Module而不是Jerkson?这样做可以更容易地使用注册了Scala模块的ObjectMapper,而不必使用Jerkson特定的处理程序。