好吧,我有一个JSON文件,它有一组对象,我希望解组到对象数组中。Jackson数据绑定模型解组对象数组
的JSON文件是如何布局的一个例子是:
{
"data":{
"name":{
"fName":"John",
"lName":"Doe"
},
"name":{
"fName":"James",
"lName":"Dokes"
}
}
}
完整的JSON文件是一个很多比这更复杂,这只是它是如何制定了一个例子。
我想要做的就是取这些名称,并将它们解组成一个名称对象数组,以便我可以随时访问每个名称对象。
的类设置为
测试类
private Data data;
public void setData(Data d) {
data = d;
}
public Data getData() {
return data;
}
public String toString() {
return "" + data;
}
数据类
private Name name;
public void setName(Name n){
name = n;
}
public Name getName(){
return name;
}
public String toString(){
return "Names " + name;
}
然后名称类只是
public class Name {
private String fName;
private String lName;
//Getter setters here
public String toString(){
return "\nFirstName: " + fName + "\nLastName: " + lName;
}
然后在主类, 我只是做
ObjectMapper mapper = new ObjectMapper();
Test test = mapper.readValue(new File("C:\\JSON\\test.json"),
Test.class);
System.out.println(test);
现在,这将打印出
Names
FirstName: James
LastName: Dokes
却忽略了名字对象,即李四。我想要的是将这些名称对象中的每一个都放在一个ArrayList中,这样我就可以访问这些信息,并随时显示它。
我在这里做错了什么?我试图改变JSON文件,使名称到一个数组,然后改变数据类的代码,使名对象名称的数组,却得到了一个错误说
Can not deserialize instance of Data out of START_ARRAY token
会有人能够指出我在这里正确的方向,因为已经尝试了许多不同的解决方案,但没有成功。
预先感谢任何帮助
编辑:
如果我JSON这个样子,然后
{
"data":{
"name":[
{
"fName":"John",
"lName":"Doe"
},
{
"fName":"test",
"lName":"test2"
}
]
}
}
好的,我更新了我的帖子。我的JSON应该看起来像我更新我的帖子? – AdamM 2012-03-11 18:57:01
JSON看起来更合乎逻辑。为了将其映射到Java POJO,您希望在Data类中将'name'数组表示为'List'。 –
2012-03-11 22:24:26
非常感谢,它现在完美! – AdamM 2012-03-12 08:09:18