У меня есть пойо, как показано ниже.У меня есть метод toString, который отвечает за преобразование его в данные JSON.Как вы можете видеть, я использую gson в этом методе toString.
// removed setters for brevity
public class User {
private String name, email, password;
// This information field is already a json as mentioned below
private String information;
public User(String name, String email, String password, String information) {
super();
this.name = name;
this.email = email;
this.password = password;
this.information = information;
}
@Override
public String toString() {
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
return gson.toJson(this);
}
Проблема в том, что из всех этих полей мое поле information
уже будет строкой json.В моей основной программе я заполняю этот объект User следующим образом.
// filled it with random info, but I will get this from someplace else
String info = "{ \r\n" +
" \"street_address\":{ \r\n" +
" \"type\":\"string\"\r\n" +
" },\r\n" +
" \"city\":{ \r\n" +
" \"type\":\"string\"\r\n" +
" },\r\n" +
" \"state\":{ \r\n" +
" \"type\":\"string\"\r\n" +
" }\r\n" +
"}";
User user = new User("John", "Doe", "password", info);
return user.toString();
Это вывод, который я получаю.
{
"name": "John",
"email": "Doe",
"password": "password",
"information": "{\r\n \"street_address\": { \"type\": \"string\" },\r\n \"city\": { \"type\": \"string\" },\r\n \"state\": { \"type\": \"string\" }\r\n}"
}
То, что я хочу, это последний information
поле для also
должно быть правильно отформатировано, то есть это то, что я ожидаю в этом примере.
{
"name":"John",
"email":"Doe",
"password":"password",
"information":{
"street_address":{
"type":"string"
},
"city":{
"type":"string"
},
"state":{
"type":"string"
}
}
}