Я хочу сериализовать Map<String,Object>
в JSON с Джексоном и обратно. Тип объекта может состоять из нескольких компонентов. Но при сериализации назад я думаю, что Джексон не знает, какой тип объекта имеет. Таким образом, он сериализуется до LinkedHashMa
р. Можно ли добавить информацию, которая набирает объект?Сериализовать карту <String, Object> в Json и обратно
Вот мой пример программы:
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;
}
}
Спасибо за ваш ответ, но объект также может быть другого типа диффере из UserBean (например AppBean). Тогда Джексон не знает, какой тип объекта имеет. Итак, если ключ «Приложение», то я хочу отдать его в AppBean. – MichaelWichtl