Java 如何将JsonNode映射到对象的ArrayList

Java 如何将JsonNode映射到对象的ArrayList,java,jackson,Java,Jackson,我有一个输入JSON节点,如下所示 "headers" : { "name1" : "value1", "name2" : "value2" } 我的Java类如下所示: public class OptionalHeader{ private String name; private String value; public OptionalHeader() { super();

我有一个输入JSON节点,如下所示

"headers" : {
    "name1" : "value1",
    "name2" : "value2"
}
我的Java类如下所示:

    public class OptionalHeader{
        private String name;
        private String value;
        public OptionalHeader() {
            super();
        }
        public OptionalHeader(String name, String value) {
            this.name = name;
            this.value = value;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getValue() {
            return value;
        }
        public void setValue(String value) {
            this.value = value;
        }
    }
我想从JsonNode创建如下所示的OptionalHeader的arrayList。

    List<OptionalHeader> optionalHeaders = new ArrayList<OptionalHeader>();
List optionalHeaders=newArrayList();

任何帮助都将不胜感激。谢谢:)

Jacksonmapper可以将Java对象从JSON对象映射到JSON对象。 您可以从中获取Jackson API。 尝试将JSON字符串保存到文件中,例如“headers.JSON”。 Jackson提供了一个
ObjectMapper
类,您可以使用它的
readValue(File File,class)
方法从JSON中获取Java对象,比如:

ObjectMapper mapper=new ObjectMapper();
OptionalHeader optHeader=mapper.readValue(新文件(“c:\\headers.json”)、OptionalHeader.class)


您可以使用相同的链接获取文档并阅读更多相关信息。

感谢所有回复:)

我要求通过REST请求(包含
key->value
对)得到的JsonNode转换成
ArrayList
,请参阅相关的
OptionalHeader

最后,使用以下方法完成了此操作:

(在我的POJO中作为JsonNode获取)通过REST请求进行。我在我的setter中使用了下面的命令

public void setOptHeaders(JsonNode optHeaders) throws JsonParseException, JsonMappingException, IOException {
    this.optHeaders = optHeaders;
    List<OptionalHeader> allHeaders = new ArrayList<OptionalHeader>();
    Iterator<Entry<String, JsonNode>> nodeIterator = optHeaders.fields();
    while (nodeIterator.hasNext()) {
       Map.Entry<String, JsonNode> entry = (Map.Entry<String, JsonNode>) nodeIterator.next();
       OptionalHeader header = new OptionalHeader(entry.getKey(),entry.getValue().asText());
       allHeaders.add(header);

    }
    optionalEmailHeaders.addAll(allHeaders);
}
public void setOptHeaders(JsonNode optHeaders)抛出JsonParseException、JsonMappingException、IOException{
this.optHeaders=optHeaders;
List allHeaders=new ArrayList();
迭代器nodeIterator=optHeaders.fields();
while(nodeIterator.hasNext()){
Map.Entry=(Map.Entry)nodeIterator.next();
OptionalHeader=newoptionalHeader(entry.getKey(),entry.getValue().astex());
添加(标题);
}
可选EmailHeaders.addAll(allHeaders);
}
然后跟随getter将其转换回

public JsonNode getOptHeaders() {
    final ObjectMapper mapper = new ObjectMapper();
    final Map<String, String> map = new HashMap<String, String>();
    for (final OptionalHeader data: optionalEmailHeaders)
        map.put(data.getName(), data.getValue());
    optHeaders = mapper.valueToTree(map);
    return optHeaders;
}
publicjsonnode getOptHeaders(){
最终ObjectMapper映射器=新ObjectMapper();
final Map=new HashMap();
用于(最终OptionalHeader数据:optionalEmailHeaders)
put(data.getName(),data.getValue());
optHeaders=mapper.valueToTree(map);
返回optHeaders;
}

这是不完整的JSON。请把完整的东西寄出去。