在Play 2.0应用程序中,我需要从一个我不控制的源中反序列化一些JSON,该源在字符串周围使用单引号,其中JSON规范需要双引号。
使用Jackson的解决方案如下:配置Jackson以反序列化单引号(无效)JSON
但试图在play2.0中实现这个解决方案时,我遇到了一堵由静态对象和私有类组成的墙。。。在初始化时用一个实现上面链接的解决方案的对象来替换对象JerksonJson应该足够了,但因为它是一个静态对象,所以它不能扩展,而且我试图将它复制到我的代码中,我需要拖动类PlaySerializers、PlayDeserializers、JsValueDeserializer,。。。我在这里停了下来,因为看起来太多了。
有干净的解决方案吗?
将无效json字符串中的每个'替换为"?
如果的仅用于指定字符串,则会起作用。
我意识到这可能对Play框架部分没有太大帮助,但也许你可以使用Jackson Scala模块而不是Jerkson?这样做应该可以更容易地使用注册了Scala模块的ObjectMapper
,而不必使用特定于Jerkson的处理程序。