我想使用Jersey从JSON-Response映射到我的Java对象。我有这样的Json回应:
{
"act": "add",
"col": "student",
"data": [
{
"firstName": "alex",
"lastName": "homer",
"age": "18",
"roomNo": "1301"
},
{
"firstName": "alex",
"lastName": "homer",
"age": "18",
"roomNo": "1301"
}
]
}
这是我的豆子,我想将Json响应映射到:
@XmlRootElement(name = "request")
@XmlAccessorType(XmlAccessType.FIELD)
public class RequestAction implements RequestOperations {
@XmlElement(required = true, name = "act")
private String action;
@XmlElement(required = true, name = "col")
private String collectionName;
@XmlElement(required = false, name = "oid")
private String objectId;
@XmlElement(name = "data")
private List<Object> data;
public RequestAction() {
}
//getters setters
}
那么,我的问题是如何在"data": {[....]}
下映射数据?
因为它也可以用任何Object
标识。
对于此示例,对象为Customer
。如果对象是Student
,Animal
还是其他什么?如果可能的话,我不需要创建该对象(我的意思是Customer
,以及其他)。
你有什么想法或建议吗?
答案 0 :(得分:0)
考虑使用Gson库:https://code.google.com/p/google-gson/ 那里的名单没有问题。
答案 1 :(得分:-1)
如果您的bean属性名称与JSON相同,则可以使用json-lib。 对于maven项目,只需输入
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
进入pom.xml。
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(YOUR JSON STRING);
RequestAction re = (RequestAction) JSONObject.toBean(jsonObject,RequestAction.class);