2014-03-16 2 views
2

У меня есть класс, называемый тест с String id поля и HashMap map как Map<String, String[]>, Map<String, ArrayList<String>> и Map<String, HashMap> (Здесь второй HashMap является <String, Integer> один) у меня есть следующий код.JSONObject добавить свойство - карты

JsonObject jsonObject = new JsonObject(); 

jsonObject.addProperty("id", test.getId); 

Нравится программа? Поделись с друзьями! Добавление как jsonObject.addProperty("map", String.valueOf(test.getMap())); не делает работу должным образом, как это добавить «(запятые) в начале и в конце. Может кто-нибудь сказать мне, что это правильный способ сделать это?

ответ

5

JsonObject имеет add метод добавления примитивов, но только один add способ добавления сложных типов. Этот метод ожидает JsonElement так это то, что вам нужно создать.

JsonObject jsonObject = new JsonObject(); 
Gson gson = new Gson(); 
JsonElement jsonElement = gson.toJsonTree(test.getMap()); 
jsonObject.add("map", jsonElement); 

Я не знаю точно, почему вы делаете это. в своем последнем вопросе, я показал вам, как генерируют полный JSON из класса Test.

Вы можете использовать

gson.toJsonTree(test); 

получить JSON как JsonElement, который можно бросить в JsonObject.

Смежные вопросы