问题描述
我在我的java servlet中编写了如下JSON响应,其中JObject是创建的JSON对象
I have composed JSON response as below in my java servlet, where JObject is the JSON object created
response.setContentType("application/json; charset=UTF-8");
PrintWriter printout = response.getWriter();
printout.print(JObject);
printout.flush();
但它在接收方收到text / plain
But it got received as text/plain in the receiving side
[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
。
How to get the exact JSON response?If i compose the JSON
response in same machine, im getting the JSON data. But if i compose the JSON
response in another server, its returning back as text/plain
.
这是 JObject
:
JSONObject JObject = new JSONObject();
JObject.put("Response", "1");
JObject.put("Message", "Client unauthorized");
推荐答案
我不确定你的代码到底是什么servlet。但是我已经创建了一个示例Servlet,并使用相同的代码返回Json输出。
I am not sure whether exactly what code you have in the servlet. But I have created a sample Servlet and it returned the Json output with the same above code.
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());
}
我得到了 {消息:客户未经授权的,响应:1}
作为浏览器的输出。
And I got {"Message":"Client unauthorized","Response":"1"}
as output on the browser.
以下是结果快照:
这篇关于JSON响应以文本形式返回的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!