好吧,我有一個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