【发布时间】:2025-12-16 03:30:01
【问题描述】:
我想用 Jackson 将 Map<String,Object> 序列化为 JSON 并返回。对象类型可以是多个 bean。但是当序列化回来时,我认为杰克逊不知道对象有什么类型。因此将其序列化为LinkedHashMap。是否可以添加对象的类型信息?
这是我的示例程序:
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;
}
}
【问题讨论】:
标签: java json serialization jackson