Как Вы возвращаетесь, объект JSON формируют сервлет Java.
Ранее при выполнении Ajax с сервлетом я возвратил строку. Есть ли тип объекта JSON, который должен использоваться или сделать Вас, просто возвращают Строку, которая похожа на объект JSON, например.
String objectToReturn = "{ key1: 'value1', key2: 'value2' }";
] Я делаю именно то, что вы предлагаете (возвращаю [] String[
]).[
] Вы можете подумать об установке MIME-типа для указания, что вы возвращаете JSON, хотя (согласно [] этому другому посту о переполнении стека[] это "приложение/json").[
].ответ. setContentType("text/json");
// create the JSON string, I suggest using some framework.
String your_string;
out.write(your_string.getBytes("UTF-8"));
.]Запишите JSON-объект в выходной поток объекта ответа.[
] []Также необходимо установить тип содержимого следующим образом, который будет указывать, что вы возвращаете: [
] [response.setContentType("application/json");
// Get the printwriter object from response to write the required json object to the output stream
PrintWriter out = response.getWriter();
// Assuming your json object is **jsonObject**, perform the following, it will return your json object
out.print(jsonObject);
out.flush();
] Просто запишите строку в выходной поток. Вы можете установить MIME-тип на text/javascript
(edit): application/json
очевидно официальнее), если вы чувствуете себя полезным. (Есть небольшой, но ненулевой шанс, что когда-нибудь что-нибудь не испортит, и это хорошая практика.)
Сначала преобразовать объект JSON в Строку
. Затем просто запишите его в ответную программу вместе с типом содержимого application/json
и кодировкой символов UTF-8.
Вот пример, предполагающий, что вы используете Google Gson для преобразования объекта Java в JSON строку:
protected void doXxx(HttpServletRequest request, HttpServletResponse response) {
// ...
String json = new Gson().toJson(someObject);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
Вот и все.
Для удобства кодирования на Java может существовать объект JSON. Но, наконец, структура данных будет сериализована в строку. Было бы неплохо задать правильный MIME-тип.