[英]Serialize Map<String,Object> to Json and back
我想將Jackson的Map<String,Object>
序列化為JSON並返回。 對象類型可以是幾個bean。 但是當我進行序列化時,我認為傑克遜不知道對象的類型。 因此將其序列化為LinkedHashMa
p。 是否可以添加對象具有的類型的信息?
這是我的示例程序:
TypeReference<HashMap<String,Object>> typeRef = new TypeReference<HashMap<String,Object>>() {};
ObjectMapper m = new ObjectMapper();
JsonFactory jf = new JsonFactory();
Map<String, Object> map = new HashMap<String, Object>();
UserBean bean1 = new UserBean();
bean1.setId("1");
bean1.setName("test");
map.put("user", bean1);
String test = m.writeValueAsString(map);
map = m.readValue(test, typeRef);
for (final Map.Entry<String, Object> entry : map.entrySet())
{
final String key = entry.getKey();
if (key.matches("user"))
{
final UserBean userBean = (UserBean)map.get(key);
}
}
public class UserBean {
String id;
String name;
public UserBean()
{
super();
}
public void setId(String id){
this.id = id;
}
public String getId(){
return this.id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
嘗試如下圖所示;
Map<String, UserBean> map = new HashMap<String, UserBean>();
(如果使用Java 7,則可以使用菱形運算符,而無需指定新的HashMap <>()之類的類型)。
您也可以嘗試通過jackson-annotations使用@JsonDeserialize
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.