GSON : How to convert Object (which itself contains JSON) to JSON

南笙酒味 提交于 2019-12-11 05:23:51

问题


I have a different use case where fields in POJO itself stores JSON data, basically grouping of all data.

Now i want the complete JSON generated from above POJO.

At present i am using this method

private static Gson gson = new Gson();
public static String convertObjectToJSON(Object object) throws Exception {
    String jsonResponse = gson.toJson(object);
    return jsonResponse;
}

But getting output with escape characters around double quotes like below

 { \"_id\" : 234242, \"name\" : \"carlos\"}

I tried various options in GsonBuilder, but not working. Basically, i am just grouping multiple JSON data and sending it across.

Could you please do the needful help to get rid of the escape characters around double quotes.

UPDATE:

Question is : I have 3 JSONs and need to combine them into a single JSON and need to pass it to html5 client through Spring MVC. As of now i am added the 3 JSONs into a POJO and trying to convert the same to JSON. Same is explained above.

Thanks & Regards

Venkat


回答1:


I have tried below sample code and it doesn't have any escape characters around double quotes.

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));

output:

{"_id":234242,"name":"carlos"}

EDIT

If you want to combine 3 JSON string then It will be stored as List of object as illustrated below:

sample code:

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));

output:

[
  {
    "_id": 1,
    "name": "A"
  },
  {
    "_id": 2,
    "name": "B"
  },
  {
    "_id": 3,
    "name": "C"
  }
]


来源:https://stackoverflow.com/questions/24713687/gson-how-to-convert-object-which-itself-contains-json-to-json

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!