У меня есть карта объектов JSON следующим образом:Как преобразовать карту объектов JSON в JSON с использованием GSON в Java?
Map<String,Object> map = HashMap<String,Object>();
map.put("first_name", "prod");
JSONObject jsonObj = new JSONObject("some complex json string here");
map.put("data", jsonObj);
Gson gson = new Gson();
String result = gson.toJson(map);
Теперь, если «какой-то комплекс JSON строка здесь» было:
{"sender":{"id":"test test"},"recipients":{"id":"test1 test1"} }
и выполнить выше код дает мне что-то вроде:
{
"first_name": "prod",
"data": {
"map": {
"sender": {
"map": {
"id": "test test"
}
}
},
"recipients": {
"map": {
"id": "test1 test1"
}
}
}
}
}
Возможно, у меня есть синтаксическая ошибка, но в основном я не знаю, почему я вижу объекты, обернутые вокруг map
.
Update
согласно комментариям, это плохая идея, чтобы смешивать различные парсеры JSon. Я могу это понять. но мой случай требует вызова внешнего api, который принимает хэш-карту объектов, которые десериализуются с помощью gson в конечном итоге.
Есть ли какие-либо другие засады для объектов JSONObject, которые я могу добавить на карту, и у вас есть gson, чтобы создать json из него без дополнительной структуры «карты»? Я понимаю, что я могу создать java beans и достичь этого. но я ищу более простой способ, так как моя структура данных может быть сложной.
Update2
собирается один шаг назад, я даюсь строку XML. и я преобразовал их в объект json. теперь я должен использовать внешний api, который берет карту, которая, в свою очередь, преобразуется в строку json, используя gson во внешней службе.
поэтому мне дана структура данных xml, но мне нужно передать карту этой функции. способ, описанный выше, создает дополнительные структуры «map» при преобразовании в json-строку с использованием gson. У меня нет контроля, чтобы изменить поведение внешней службы (например, с помощью gson для преобразования карты).
смесительных классы из двух разных разбора библиотек JSON это рецепт катастрофы. –
Вам нужно будет предоставить нам пример содержимого «HashMap» и того, что вы хотите добавить к нему. Не совсем понятно, что вы хотите. –
Я пытаюсь создать hashmap, который может быть преобразован в строку json позже, используя gson. но для моей потребности мне нужно создать эту карту, а не строку json. мне просто нужно знать, что эта карта «может» быть преобразована в строку json с использованием gson с добавлением «map» –