将列表中的以下值合并为单个值

时间:2017-01-09 11:34:40

标签: java json

我想将所有下面的对象递归地合并为单个对象。每次我为每次迭代运行代码时,我都会收到一个字符串对象,我将它们存储在一个列表中。列表如下所示:

bean [String1,String2,String3]。这三个字符串将合并为单个字符串对象。

String1:

 [code=100,
    response=
        {
          "testObjects": [
            {
              "updated": [
        {
          "attributes": {},
          "id": "123"
        },
        {
          "attributes": {},
          "id": "456"
        }
      ],
              "timeCheckQuery": null,
              "query": null,
              "message": null,
              "error": null,
              "deleted": null,
              "agentId": null,
              "added": null
            }
          ],
          "message": null,
          "error": null
        }
    ]

String2的:

[code=100,
    response=
    {
          "testObjects": [
            {
              "updated": [
    {
      "attributes": {},
      "id": "789"
    },
    {
      "attributes": {},
      "id": "759"
    }
  ],
              "timeCheckQuery": null,
              "query": null,
              "message": null,
              "error": null,
              "deleted": null,
              "agentId": null,
              "added": null
            }
          ],
          "message": null,
          "error": null
        }
]

STRING3:

[code=100,
    response=
    {
          "testObjects": [
            {
              "updated": [
    {
      "attributes": {},
      "id": "242"
    },
    {
      "attributes": {},
      "id": "951"
    }
  ],
              "timeCheckQuery": null,
              "query": null,
              "message": null,
              "error": null,
              "deleted": null,
              "agentId": null,
              "added": null
            }
          ],
          "message": null,
          "error": null
        }
]

输出:

[code=300,
        response=
        {
              "testObjects": [
                {
                  "updated": [
        {
          "attributes": {},
          "id": "123"
        },
        {
          "attributes": {},
          "id": "456"
        },
{
          "attributes": {},
          "id": "789"
        },
        {
          "attributes": {},
          "id": "759"
        },
 {
          "attributes": {},
          "id": "242"
        },
        {
          "attributes": {},
          "id": "951"
        }
      ],
                  "timeCheckQuery": null,
                  "query": null,
                  "message": null,
                  "error": null,
                  "deleted": null,
                  "agentId": null,
                  "added": null
                }
              ],
              "message": null,
              "error": null
            }
    ]

2 个答案:

答案 0 :(得分:0)

您可以将第一个对象序列化为json字符串,然后将该字符串附加到序列化的下一个对象,依此类推。

答案 1 :(得分:0)

'updated'字段的值似乎是JsonArray Structure。

你需要做的是有一个全局数组,它将所有响应中的值('updated'字段的值)添加到单个JsonArray中。

使用Gson Library,您可以按照以下步骤进行操作

JsonArray jsonarray = new JsonArray();
jsonarray.addAll(jsonObject1.get("updated").getAsJsonArray());
jsonarray.addAll(jsonObject2.get("updated").getAsJsonArray());
jsonarray.addAll(jsonObject2.get("updated").getAsJsonArray());

现在,您可以根据需要在任何对象中使用此JsonArray。