我有一个不同的用例,其中 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。上面已经解释过了。
感谢和问候
文卡特
最佳答案
我尝试了下面的示例代码,它的双引号周围没有任何转义字符。
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"
}
]
关于java - GSON : How to convert Object (which itself contains JSON) to JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24713687/