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



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

使用Jackson的解决方案如下:配置Jackson以反序列化单引号(无效)JSON

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

有干净的解决方案吗?

将无效json字符串中的每个'替换为"?

如果的仅用于指定字符串,则会起作用。

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

最新更新