Java 如何将JsonNode映射到对象的ArrayList
我有一个输入JSON节点,如下所示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();
"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。请把完整的东西寄出去。