В моем коде мне нужно добавить org.json.JSONObject
к другому объекту, который сериализован с использованием gson.toJson
. Однако, когда этот объект сериализуется, значения в JSONObject
вкладываются в ключ карты самим gson. Например,
public class New {
private static final Gson gson = new GsonBuilder().disableHtmlEscaping().create();
public static void something(User user) throws Exception {
try {
ObjectWriter ow = new ObjectMapper().writer();
String json = ow.writeValueAsString(user);
JSONObject maskedUser = new JSONObject(json);
Nesting testing = new Nesting(maskedUser, "someting");
String something = gson.toJson(testing);
System.out.println(something);
} catch (Exception e) {
throw e;
}
}
public static void main(String[] args) throws Exception {
User user = new User("a", "b", "c");
something(user);
}
}
Я получаю вывод JSON как таковой
{"details":{"map":{"lastname":"b","firstname":"a","password":"c"}},"sometim":"someting"}
Мне нужно знать, как избежать использования ключа map
, который автоматически добавляется парсером gson.
Редактировать: я только что обнаружил, что gson также добавляет "myArrayList"
, когда сериализует массив внутри объекта. Это крайне неприятно и делает анализ JSON сложным и раздражающим.
"map":{"fruits":{"myArrayList":["Apples"]}