将PoJo的JSON String属性解析为对象

时间:2016-09-16 08:50:05

标签: java json parsing jackson pojo

我想请求帮助以使我的代码更清洁。

我有这些PoJos例如:

class A {
  B b;
}

class B {
  int a;
  int b;
}

数据来自HTTP请求,正文是JSON。我想通过将属性b作为JSON字符串解析为A类,如下所示。

{
  "b":"{\"a\":1,\"b\":2}"
}

目前我通过Jackson的ObjectMapper使用自定义解析,我手工验证值。是否可以在属性'b'上应用一些注释,表明它是一个包含在字符串中的复杂属性?

感谢您的帮助!

1 个答案:

答案 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

编写自定义反序列化器