[英]serializing List for Restlet using Jackson
我正在連接圖書館。 我得到List<List> foodItemsList
如何使用Jackson序列化foodItemsList
? 這是在處理GET時發生的。
我已經了解了如何使用Jackson / Restlet序列化一個對象,但是我無法找出它的列表。
對於單個對象,這就是我要做的
@Get("json")
public Representation represent(Variant variant) throws ResourceException {
:
ObjectMapper mapper = new ObjectMapper();
String myFinString = mapper.writeValueAsString(profileSupportedInfo);
:
return myFinstring
}
我提供的是profileSupportedInfo中的成員數據的getter setter。
在創建映射器對象之前,這是我撥打的電話
List<List> totalfoodItem = someMemberFunc();
ObjectMapper mapper = new ObjectMapper
// my question - how do I serialize totalFoodItem
JSON中totalFoodItem
的首選表示如下
{
"food":[
{"name":"apple","img_loc":"123_apple.jpg","energ":210,"food_unit":"1"},
{"name":"rice","img_loc":"134_rice.jpg","energ":123,"food_unit":"100 gm"},
:
]
}
我缺少/不了解什么? 謝謝
恐怕要成功序列化List,您必須將其轉換為數組。 JVM不會使用適當的類型信息來序列化列表(在反序列化時,您只會得到通用對象的列表),這不是傑克遜的錯。 但是,如果序列化數組,則必須鍵入該數組,並且數組內的對象也將保留其類型。
從所需的JSON看來,您需要的只是一個幫助程序類,可以收集食物信息,例如:
public class Food {
private String name;
private String img_loc;
private String energ;
private String food_unit;
public FoodItem(String name, String value, String energ, String food_unit) {
this.name = name;
this.value = values;
this.energ = energ;
this.food_unit = food_unit;
}
}
現在,您需要的只是一個具有一系列Food對象作為屬性的對象:
public class TotalFoodItem {
private Food[] food;
...
}
您可以序列化該對象。 傑克遜可能不會產生看起來完全像您想要的JSON的JSON(我自己沒有嘗試過此代碼),但它應該非常接近。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.