2013-06-04 4 views
1

я сочинил ответ JSON, как показано ниже в моей Java Servlet, где JObject является объектом JSON созданJSON ответ возвращается как текст

response.setContentType("application/json; charset=UTF-8"); 
PrintWriter printout = response.getWriter(); 
printout.print(JObject); 
printout.flush(); 

Но он получил получил как текст/равнина на приемной стороне

[Server: Apache-Coyote/1.1, ETag: W/"XXXXXXXXXX", Last-Modified: Tue, 04 Jun 2013 10:42:31 GMT, Content-Type: text/plain, Content-Length: 2573, Date: Tue, 04 Jun 2013 10:44:01 GMT] 

Как получить точный ответ JSON? Если я сочиняю ответ JSON на том же компьютере, я получаю данные JSON. Но если я составлю ответ JSON на другом сервере, он возвращается обратно как text/plain.

И это JObject:

JSONObject JObject = new JSONObject(); 
JObject.put("Response", "1"); 
JObject.put("Message", "Client unauthorized"); 
+0

мы говорим о сервлетов? –

+2

Текст JSON IS, вам нужно проанализировать возвращаемое значение. – MasNotsram

+0

Предоставить детали JObject ... Объявление и инициализация –

ответ

6

Я не уверен, какой именно код у вас в сервлете. Но я создал образец Servlet, и он возвратил Json-вывод с тем же кодом выше.

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     response.setContentType("application/json; charset=UTF-8"); 
     PrintWriter printout = response.getWriter(); 

     JSONObject JObject = new JSONObject(); 
     JObject.put("Response", "1"); 
     JObject.put("Message", "Client unauthorized"); 

     printout.print(JObject); 
     printout.flush(); 
      // Or 
      // printout.write(JObject.toString()); 
    } 

И я получил {"Message":"Client unauthorized","Response":"1"} в качестве вывода в браузере.

Вот стопорное результат выстрел:

enter image description here

1

response.getWriter().write(jsonObj.toString()) работает для меня.

+0

К моему удивлению, как printout.print(), так и printout.write() работают во всех браузерах. Но если я запустил его в eclipse IDE, запущенном как «run on server», его чтение в виде текста .. кто-нибудь испытал это раньше? – John

+0

Я тоже запускаю его в Eclipse, и он работает. Это поведение не зависит от браузера, как на стороне сервера. По крайней мере, заголовки ответов и орган реагирования должны быть одинаковыми ... –

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