首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当对象键是随机的时,如何用Jackson2解析JSON?

当对象键是随机的时,如何用Jackson2解析JSON?
EN

Stack Overflow用户
提问于 2018-03-24 21:49:29
回答 1查看 77关注 0票数 1

我想用Jackson2解析Java中的JSON,它的结构如下:

代码语言:javascript
复制
{
 "attachment": {
  "_2K26Z-mLJmMSRnssLwD0zQ": {
    "ext": "jpg",
    "height": 3024,
    "md5": "219c226e0070b7367f90e2f1bff1dfc2",
    "name": "IMG_1871.jpg",
    "ref": "MTUyMTAzNDY5MDUzNElNR18xODcxLmpwZw==",
    "rotate": true,
    "size": 1514957,
    "thumb": "thumb_1024_219c226e0070b7367f90e2f1bff1dfc2",
    "thumb_size": 73119,
    "type": "image",
    "width": 4032
    },
    "_Q7l14s87UquHcAYoolNCuw": {
      "ext": "png",
      "height": 186,
      "md5": "75023fd60d59907376943bf109858336",
      "name": "ns_attach_image_26071520280535225.png",
      "ref": "MTUyMDI4MDUzNTIzMG5zX2F0dGFjaF9pbWFnZV8yNjA3MTUyMDI4MDUzNTIyNS5wbmc=",
      "rotate": true,
      "size": 15182,
      "type": "image",
      "width": 347
    }
  },
  "title": "Test Title"
}

我的问题是我不知道如何处理附件的键,因为我不能定义一个具有未知名称的字段的类。

起作用的是

代码语言:javascript
复制
ObjectMapper mapper = new ObjectMapper();
Note note = mapper.readValue(fileio, Note.class); 

备注类在哪里

代码语言:javascript
复制
public class Note {
   private String title;
   private Object attachment;

   public String getTitle() {
      return title;
   }

   public void setTitle(String title) {
      this.title = title;
   }

   public Object getAttachment() {
      return attachment;
   }

   public void setAttachment(Object attachment) {
      this.attachment = attachment;
   }
}

但是我想使用一个带有名称附件的类,它使用“_2K26Z-mLmMSRnssLwD0zQ”键保存json中的所有字段。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-24 22:30:40

您可以使用Map,这样附件的键将是映射中的键,而映射中的值将是表示附件字段的对象。如下所示:

代码语言:javascript
复制
public class Attachment {
    private String ext;
    private int height;
    private String md5;
    private String name;
    private String ref;
    private boolean rotate;
    private int size;
    private String thumb;
    private int thumb_size;
    private String type;
    private int width;

}

public class Note {
    private String title;

    private Map<String, Attachment> attachment = new HashMap<>();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49470304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档