Настроить Play/Jerkson для десериализации JSON без кавычек (нестандартный) без дублирования большого количества кода
В приложении Play 2.0 мне нужно десериализовать некоторый JSON из источника, который я не контролирую, который использует одинарные кавычки вокруг строк - где спецификация JSON требует двойных кавычек.
Решение с использованием Джексона находится здесь: Настройте Джексона для десериализации JQ с одинарными кавычками (неверно)
Но, пытаясь реализовать это решение в play2.0, я наткнулся на стену статических объектов и частных классов... этого должно быть достаточно, чтобы заменить объект JerksonJson на объект, реализующий решение, связанное выше при инициализации, но, поскольку это статический объект, он может Не могу быть расширена, и я пытаюсь скопировать его в свой код, который мне нужно перетащить вдоль классов PlaySerializer, PlayDeserializer, JsValueDeserializer,... Я остановился здесь, так как это выглядело слишком много.
Есть ли чистое решение?
2 ответа
Как насчет попытки исправить недопустимую строку json, заменив каждую 'в ней на "?
Это сработало бы, если бы они использовались только для указания строк.
Я понимаю, что это может не сильно помочь с частью фреймворка Play, но, возможно, вы могли бы использовать модуль Jackson Scala вместо Jerkson? Это должно облегчить использование ObjectMapper
, с зарегистрированным модулем Scala, вместо того, чтобы использовать специфичные для Джексона обработчики.