我想创建两个不同的JSON文档,每个文档包含5个字段。我有一个有10个属性的POJO类。我想使用该POJO类形成具有5个属性的json1和具有5个属性的json2。有没有办法构建这些对象?
答案 0 :(得分:3)
考虑编写两个单独的包装类,每个包装类公开两个案例所需的字段,并将pojo作为构造函数arg传递。
因此,其中一个公开了一组属性,可能看起来像这样:
public class JsonObject1 {
private MyPojo myPojo;
public JsonObject1(MyPojo myPojo) {
this.myPojo = myPojo;
}
public void getProperty1() {
return myPojo.getProperty1();
}
......
}
和另一个相似,但是公开了其他属性子集。
或者,你可以添加两个方法(可能是你的POJO,或者可能是一个暴露POJO的服务类),每个方法返回一个Map
(例如HashMap
)你在哪里复制到每个视图所需的特定属性,然后将这些映射转换为JSON。这不是“模型驱动”,但整体工作可能较少。感谢@fvu的观察!
public Map<String, Object> getPojoAsMap1() {
Map<String, Object> m = new HashMap<>();
m.put("property1", pojo.getProperty1());
....
return m;
}
两个不同的JSON表示也可能试图告诉您,您的POJO应该分成两个POJO - 有时这样的事情是关于如何改进代码的提示。但这取决于具体情况,在这种情况下可能不适用。