Я хотел бы попросить помощи, чтобы сделать мой код чище.Атрибут Parse PoJo JSON String как объект
У меня есть этот Pojos, например:
class A {
B b;
}
class B {
int a;
int b;
}
данные поступают из запроса HTTP и тело JSON. Я хочу проанализировать это как класс A, указав атрибут b как строку JSON, как показано ниже.
{
"b":"{\"a\":1,\"b\":2}"
}
В настоящее время я использую пользовательский синтаксический анализ через ObjectMapper от Jackson, и я действительно оцениваю проверку вручную. Можно ли применить некоторую аннотацию к атрибуту «b», который означает, что это сложный атрибут, заключенный в строку?
Спасибо за помощь!
Там нет необходимости делать это. Джексон понимает вложенные объекты и десериализует объект 'A' правильно, поэтому он будет содержать фактический экземпляр' B'. – ike3
Если я позволю Джексону выполнить десериализацию, он будет жаловаться на отсутствующий конструктор в B с одним вводом String. Я надеюсь, что есть способ сказать Джексону обработать форматированную строку JSON как объект JSON. – m3dw3
Кажется, ваш JSON искажен. Вы можете удалить кавычки «b»: {\ "a \": 1, \ "b \": 2} '? Из-за этого Джексон десериализует его как String. Если этот формат предназначен (что не рекомендуется), тогда вы можете создать конструктор, который Джексон хочет и десериализует String. – ike3