gpt4 book ai didi

java - 将 Map 序列化为 Json 并返回

转载 作者:太空宇宙 更新时间:2023-11-04 14:18:52 30 4
gpt4 key购买 nike

我想序列化 Map<String,Object>与 Jackson 之间转换为 JSON,然后返回。对象类型可以是多个 bean。但是当序列化回来时,我认为 jackson 不知道对象有什么类型。因此将其序列化为 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 ;

Map<String, UserBean> map = new HashMap<String, UserBean>();

(如果是 Java 7,您可以使用菱形运算符,而无需指定 new HashMap<>() 等类型)。

您还可以尝试使用 jackson-annotations 来使用 @JsonDeserialize

关于java - 将 Map<String,Object> 序列化为 Json 并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27417670/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com