我想请求帮助以使我的代码更清洁。
我有这些PoJos例如:
class A {
B b;
}
class B {
int a;
int b;
}
数据来自HTTP请求,正文是JSON。我想通过将属性b作为JSON字符串解析为A类,如下所示。
{
"b":"{\"a\":1,\"b\":2}"
}
目前我通过Jackson的ObjectMapper使用自定义解析,我手工验证值。是否可以在属性'b'上应用一些注释,表明它是一个包含在字符串中的复杂属性?
感谢您的帮助!
答案 0 :(得分:2)
使用以下内容创建自定义构造函数:
class B {
public B() {}
public B(String value) {
B b = new ObjectMapper().readValue(value, B.class);
this.a = b.a;
this.b = b.b;
}
int a;
int b;
}
另一种解决方案可能是为B
编写自定义反序列化器