У меня другой вариант использования, когда поля в POJO сами хранят данные JSON, в основном группируя все данные.
Теперь я хочу, чтобы полный JSON генерировался поверх POJO.
В настоящее время я использую этот метод
private static Gson gson = new Gson();
public static String convertObjectToJSON(Object object) throws Exception {
String jsonResponse = gson.toJson(object);
return jsonResponse;
}
Но получение вывода с escape-символами вокруг двойных кавычек, как показано ниже
{ \"_id\" : 234242, \"name\" : \"carlos\"}
Я пробовал различные варианты в GsonBuilder, но не работал. В принципе, я просто группирую несколько данных JSON и отправляю их.
Могли бы вы, пожалуйста, сделать необходимую помощь, чтобы избавиться от символов побега вокруг двойных кавычек.
Вопрос в том, что у меня есть 3 JSON и вам нужно объединить их в один JSON и передать его клиенту html5 через Spring MVC. На данный момент я добавил 3 JSON в POJO и попытался преобразовать их в JSON. То же самое объясняется выше.
С уважением
Venkat
Я попробовал ниже пример кода, и у него нет никаких escape-символов вокруг двойных кавычек.
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"
}
]