gpt4 book ai didi

java - 将Json字符串映射到java中的map或hashmap字段

转载 作者:行者123 更新时间:2023-12-04 05:57:58 24 4
gpt4 key购买 nike

假设我从服务器返回了以下 JSON 字符串:

{
"response":{
"imageInstances":{
"one":{
"id":"1",
"url":"ONE"
},
"two":{
"id":"2",
"url":"TWO"
}
}
}
}

在 codehaus jackson @JsonProperty , 我怎样才能得到一个 HashMap对象出来了吗?
import org.codehaus.jackson.annotate.JsonAnySetter;
import org.codehaus.jackson.annotate.JsonProperty;

import java.util.HashMap;
import java.util.List;

public class MSShow {
@JsonProperty("imageInstances") private HashMap<String, Temp> images;//// HOW DO YOU CONVERT IT TO HASH MAP??????
@JsonAnySetter public void ignoredField(String key, Object value) { }

private class Temp {
@JsonProperty("id") private String id;
@JsonProperty("url") private String url;
@JsonAnySetter public void ignoredField(String key, Object value) { }
}
}

归根结底,我希望基于返回的 JSON 字符串生成的哈希映射为
(用java伪写)

应该返回一个带有字段的 Temp 对象 id=1url=ONE如果我打电话
images.get("one")

应该返回一个带有字段的 Temp 对象 id=2url=TWO如果我打电话
images.get("two") 

最佳答案

这应该可以正常工作,只需稍作修改:您正在使用额外的“响应”条目。所以通常你会使用一个包装器 POJO,如:

class Wrapper {
public MSShow response;
}

正确映射结构。或者您可以使用 UNWRAP_ROOT_VALUE功能(来自 DeserializationConfig )自动执行此操作,尽管类的名称需要匹配。

结果确实是 HashMap如果字段类型是那个(它是)。如果不是,您还可以使用:
@JsonDeserialize(as=HashMap.class)

强制使用特定的子类型。

关于java - 将Json字符串映射到java中的map或hashmap字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9286785/

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