甚至可以用超级字段绑定根对象吗?
我有非常复杂的实体(实体)要绑定。我已经迷失了它:)
这是我的代码情况:
public class CoreRestWrapper {
private Integer page;
private Integer perPage;
}
public class UserWrapper extends CoreRestWrapper {
private Collection<UserCVO> users;
}
public class UserCVO {
private UserVO userVO;
private Map<String, UserMeta> meta;
}
public class UserVO extends BaseVO {
//nothing here
}
public class BaseVO {
private Integer id;
private String mainName;
}
public class UserMeta extends Meta {
//nothing here
}
public class Meta {
private String key;
private Object value;
private String type; //String, Integer, Boolean, Date
}
UserWrapper是我的根对象。我想让我的回复xml看起来像这样:
<users>
<page>1</page>
<perPage>2</perPage>
<user>
<id>1</id>
<main>test</main>
<meta type="String" key="wtf">just for fun</meta>
<meta type="Integer" key="age">99</meta>
</user>
<user>
<id>2</id>
<main>test</main>
<meta type="String" key="wtf">fooooo</meta>
<meta type="Integer" key="age">101</meta>
</user>
</users>
甚至可能是<users page="1" perPage="2">
,然后只是用户标签......
这是否可能(对于JiBX的初学者来说)?
答案 0 :(得分:1)
您可以,但您必须为层次结构中的所有内容定义映射。我碰到了同样的事情。它结果非常复杂,我发现创建一个JIBX包装器对象以映射到(例如UserJibxWrapper)更简单,然后编写一些代码将其映射到内部对象。
在您的情况下,对象本身非常简单,因此您可以生成所需的所有映射。我是自上而下的。获取基类并映射它,获取映射工作,然后添加子类并根据需要更改映射,并继续以这种方式工作。由于JIBX需要知道要映射的层次结构中的所有内容,因此自上而下映射比自下而上更容易。