Gson - 将多个JSON对象合并为一个JSON

时间:2016-01-24 08:17:16

标签: java json gson

我有一个案例需要将多个JSON对象合并为一个JSON 单个响应如下所示:

{"name":"MyName"}

多个合并的JSON如下所示:

["{\"name\":\"name\"}","{\"name\":\"MyName\"}"]

这里的问题是我想要包含的子JSON可以来自Java对象,也可以作为String本身使用。

MyRequest request = new MyRequest();
request.setName("name");
String singleJson = new Gson().toJson(request);

String fromSomePlaceElse = "{\"name\":\"MyName\"}";;
List<String> list = Lists.newArrayList(singleJson,fromSomePlaceElse);
System.out.println(new Gson().toJson(list)); 

上面给出了以下输出:

["{\"name\":\"name\"}","{\"name\":\"MyName\"}"]

而不是:

[{"name":"MyName"}, {"name":"MyName"}]

我不想解析现有的JSON并执行以下操作:

List<MyRequest> list2 = Lists.newArrayList(request, new Gson().fromJson(fromSomePlaceElse, MyRequest.class));
System.out.println(new Gson().toJson(list2));

可以使用Gson完成吗?

3 个答案:

答案 0 :(得分:2)

只需打印即可。

List<String> list = Lists.newArrayList(singleJson,fromSomePlaceElse);
System.out.println(list);

然后你可以得到

[{"name":"name"}, {"name":"MyName"}]

答案 1 :(得分:0)

如果你想要json的字符串形式,你可以直接使用---

apply plugin: 'java'
apply plugin: 'spring-boot'

dependencies {
        compile "com.example:ProjectB:1.0.0"
}

答案 2 :(得分:0)

尝试使用给定的库一次合并任意数量的JSON对象。结果可以返回为StringJsonObject(GSON)。请参考 this answer 中的代码。