#java #json #jackson
Вопрос:
Я изучаю библиотеку Джексона и пытался с помощью картографических данных преобразовать ее в JSON, но я получаю знак равенства в своих данных json
Map<Integer,String> map=new HashMap();
map.put(id , "a_set.jsp?action=start");
map.put(id , "password_change.jsp?action=edit");
map.put(id , "logging.jsp?action=start");
map.put(id , "about.jsp");
writeJson(map,resp);
а метод writeJson-это
@JsonAnyGetter
private void writeJson(Object object, HttpServletResponse response) {
try {
response.getWriter().write(object.toString());
} catch (IOException ex) {
ProTrace.exception( CLASS_NAME "Could not write to response", ex);
}
}
Выход есть :
{
0=a_webuihost_set.jsp?action=start,
1=password_change.jsp?action=edit,
2=logging.jsp?action=start,
3=about.jsp
}
Почему я получаю здесь знак равенства?
Ответ №1:
То, что вы видите, — это не JSON
что иное toString
, как представление Map
объекта. Вам необходимо использовать JSON
библиотеку сериализации для сериализации полезной POJO
JSON
нагрузки. Вы можете использовать Jackson
ObjectMapper
:
private void writeJson(Object object, HttpServletResponse response) {
final ObjectMapper mapper = new ObjectMapper();
try {
mapper.writeValue(response.getWriter(), object);
} catch (IOException ex) {
}
}