在Java中重新格式化JSON数组的大多数内存有效方法

时间:2013-08-10 13:42:32

标签: java json jackson

假设我有一个类似于以下内容的JSON数组:

[
  {
    "title": "This is a title",
    "year": 2013,
    "images": {
      "image": "http://........jpg",
    },
    "ratings": {
      "thumbsup": 1053,
      "thumbsdown": 256
    }
  },
  {
    "title": "This is a title",
    "year": 2013,
    "images": {
      "image": "http://........jpg",
    },
    "ratings": {
      "thumbsup": 1053,
      "thumbsdown": 256
    }
  }
]

所需的输出是这样的JSON数组:

[
      {
        "title": "This is a title",
        "images": {
          "image": "http://........jpg",
        },
        "ratings": {
          "thumbsup": 1053,
        }
      },
      {
        "title": "This is a title",
        "images": {
          "image": "http://........jpg",
        },
        "ratings": {
          "thumbsup": 1053,
        }
      }
    ]

我一直在研究,并建议最有效的方法是使用Jackson流API解析它。这适用于内存有限的PaaS,因此我希望将内存使用量保持在最低限度。

使用Jackson Streaming API解析JSON的最佳方法是,同时构建一个新的JSON数组还是只是以某种方式删除元素?

1 个答案:

答案 0 :(得分:0)

我曾经做过类似XML的事情。您可以让请求者告诉您要返回的字段,并让它只发出这些字段。在我的情况下,我无法控制第三方轴xml视图,但是一旦我有了视图,当我向它询问时,如果它已经存在,我可以回馈我感兴趣的部分。作为奖励,如果你在获取json或XML后从JSON编组或解组真正的java对象,则不需要构建你不关心的对象图的一部分。