我有一个不同的用例,POJO中的字段本身存储JSON数据,基本上是对所有数据进行分组。
现在我想要从上面的POJO生成完整的JSON。
目前我正在使用这种方法
private static Gson gson = new Gson();
public static String convertObjectToJSON(Object object) throws Exception {
String jsonResponse = gson.toJson(object);
return jsonResponse;
}
但是使用双引号(如下面的
)获取带有转义字符的输出 { \"_id\" : 234242, \"name\" : \"carlos\"}
我在GsonBuilder中尝试了各种选项,但没有用。 基本上,我只是将多个JSON数据分组并发送给它。
请你帮忙摆脱双引号周围的转义字符。
问题是:我有3个JSON,需要将它们组合成一个JSON,需要通过Spring MVC将它传递给html5客户端。截至目前,我将3个JSON添加到POJO并尝试将其转换为JSON。同样如上所述。
谢谢&此致
Venkat
答案 0 :(得分:0)
我试过下面的示例代码,并且它没有双引号周围的任何转义字符。
class MyPOJO{
private int _id;
private String name;
// getter & setter
}
String json="{ \"_id\" : 234242, \"name\" : \"carlos\"}";
MyPOJOobj=new Gson().fromJson(json, MyPOJO.class);
System.out.println(new Gson().toJson(obj));
输出:
{"_id":234242,"name":"carlos"}
如果你想组合3个JSON字符串,那么它将被存储为对象列表,如下所示:
示例代码:
String json = "[" +
" { \"_id\" : 1, \"name\" : \"A\"}," +
" { \"_id\" : 2, \"name\" : \"B\"}," +
" { \"_id\" : 3, \"name\" : \"C\"}" +
"]";
Type type = new TypeToken<ArrayList<MyPOJO>>() {}.getType();
ArrayList<MyPOJO> obj = new Gson().fromJson(json, type);
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(obj));
输出:
[
{
"_id": 1,
"name": "A"
},
{
"_id": 2,
"name": "B"
},
{
"_id": 3,
"name": "C"
}
]