2016-01-24 77 views
2

我有一种情况,我需要将多个json对象合并到一个json中。单响应如下所示:Gson - 将多个json对象合并为一个json

{"name":"MyName"} 

多合并JSON看起来是这样的:

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

这里的问题是,我想包括孩子JSONs可以来自一个Java对象或者是可作为字符串本身。

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\"}"], instead of 
[{"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完成?

+0

怎么样'的System.out.println(名单);'? – saka1029

+0

OMG!我怎么错过了?请张贴它作为答案,以便我可以接受。 – OneMoreError

回答

2

只需打印它。

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

然后你就可以得到

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

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

new Gson().toJson(yourList, new TypeToken<List<JsonObject>>(){}.getType())