2013-07-30 3 views
3

Привет У меня есть вложенный объект с состоянием хешей и списков. Я пытаюсь использовать gson, но, похоже, не работает, если значения в hashmaps являются hashmaps вместо простых строк.Как преобразовать хэш из hashmaps в json в java

Map questionDetails = new HashMap<>(); 
questionDetails.put("label", descriptionNode.getText()); 
questionDetails.put("validations", new HashMap<>().put("compulsary", 1)); 
System.out.println(new Gson().toJson(questionDetails)); 

если отпечатки

{"label":"I am working on something"} 

в то время как

Map questionDetails = new HashMap<>(); 
questionDetails.put("label", descriptionNode.getText()); 
questionDetails.put("validations", "something"); 
System.out.println(new Gson().toJson(questionDetails)); 

кажется, работает хорошо.

ответ

4

Причина, по которой не работает в том, что вы положили результат: новый HashMap <>() положил (». принудительный ", 1) вместо самого hasmap.

questionDetails.put("validations", new HashMap<>().put("compulsary", 1)); 

сделать:

Map questionDetails = new HashMap<>(); 
questionDetails.put("label", descriptionNode.getText()); 
Map validations = new HashMap<>(); 
validations.put("compulsary", 1) 
questionDetails.put("validations", validations); 
System.out.println(new Gson().toJson(questionDetails)); 

{ "валидации": { "принудительно": 1}, "метка": "Я работаю над чем-то"}

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