检索JSON附件及其属性

时间:2015-05-12 08:43:03

标签: java json gson cloudant

背景: 我在CloudantDB中存储了一个JSON文档(id:160d7237a5fd00501f4654a6c8b42f38),并对文档放置了一个附件。正如您所看到的,JSON结构下面有一个与之关联的附件(即Rajiv.jpg)。

我想检索JSON附件对象(JPEG)。有人可以帮助我如何将下面的JSON结构转换为Java POJO类并使用相同的方法检索附件吗? POJO类的定义是什么?提前谢谢。

我想通过网络服务在UI屏幕上显示JPEG文件,该网络服务将从CLoudantDB中检索JPEG并将其传递给UI。

{
  "_id": "160d7237a5fd00501f4654a6c8b42f38",
  "_rev": "3-695e52989827cd9e203ff9f506eaf7df",
  "Customer_Id": "2",
  "_attachments": {
    "Rajiv.jpg": {
      "content_type": "image/jpeg",
      "revpos": 2,
      "digest": "md5-/78IzjPUu7nkbVbSXBF2Xg==",
      "length": 39712,
      "stub": true
    }
  }
}

1 个答案:

答案 0 :(得分:1)

您获得的JSON不包含实际附件 - 只包含有关它的元数据。

来自documentation

  

要检索附件,请向https://$USERNAME.cloudant.com/$DATABASE/$DOCUMENT_ID/$ATTACHMENT发出GET请求。回复的主体是附件的原始内容。

所以在这种情况下,听起来你要向https://[...].cloudant.com/[...]/160d7237a5fd00501f4654a6c8b42f38/Rajiv.jpg

发出请求

关于响应是否实际上是带有Base64数据的JSON,或者仅仅是数据,文档似乎令人困惑 - 但试试看看。

您不需要POJO来解析问题中显示的原始数据;您使用的任何解析器都可能提供一个“动态”视图,允许您按名称获取字段:只需获取_attachments字段,然后迭代生成的对象中的字段。