为了账号安全,请及时绑定邮箱和手机立即绑定

处理存储为 HashMap 的 Json,其中多个元素存储在值中

处理存储为 HashMap 的 Json,其中多个元素存储在值中

慕慕森 2022-05-21 18:32:56
我有一个包含多个对象的 json 文档。我已设法将其打印为地图,但我希望能够访问值中的元素。我可以打印地图,但希望能够打印键中的特定元素for (Map.Entry<String,Object> entry : myMap.entrySet()) {        System.out.println("Key: "+entry.getKey() + " Value: "+entry.getValue());    }这将输出以下内容:Key: header1 Value: {id=123456, contents=[cat,dog,hamster]}Key: header2 Value: {id=234567, contents=[spoon,knife,fork]}我希望能够循环遍历并在每次迭代时将 id 分配给字符串并将内容分配给列表
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

最简单的解决方案是创建一个代表 JSON 的类。对你来说,它会是这样的:


public class Contents {

    private int id;

    private List<String> contents;


    //No arguments constructor, getters and setters for every field

    //You can make with @JsonCreator, too. Read Jackson documentation

};

然后您只需使用 Jackson 的 ObjectMapper 将其作为对象读取:


ObjectMapper mapper = new ObjectMapper();

Contents result = mapper.readValue(entry.getValue(), Contents.class);

之后,您可以对对象做任何您喜欢的事情。之后,您甚至可以将其写入 File/Stream 等。


查看完整回答
反对 回复 2022-05-21
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我有几个我认为可以工作的代码问题,但现在在同事的帮助下解决了这个问题。

value.getContents();

是我要找的东西!


查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信