检索从android发送的servlet中的json

时间:2013-03-17 18:14:54

标签: android servlets

我在Java Servelt中从android中检索作为 HttpEntity 发送的JSON对象时遇到了问题。以下是我的代码

Android代码:

**

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("order", d));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));    
httpResponse = httpClient.execute(httpPost);

**

Servlet代码:

InputStream in = request.getInputStream();
    StringBuffer xmlStr=new StringBuffer();
    int d;
    while((d=in.read()) != -1){
              xmlStr.append((char)d);
    }
    System.out.println("xmlStr1--"+xmlStr.toString());

servelt代码中的上述语句打印JSON中的数据,但是所有垃圾值都是这样的

xmlStr1 - 为了=%7B%22orderno%​​22%3A%223%22%2C%22tableid%22%3A%227%22%2C%22kotid%22%3A%223%22%2C%22stewardid%22 %3A%223%22%2C%22items%22%3A%220%22%7D

请帮我检索这个以应用程序 HttpEntity 发送的JSON。

2 个答案:

答案 0 :(得分:1)

数据不是JSON格式或XML格式。您的代码创建了Url-Encoded格式。 URL Encode and Decode Special character in Java描述了解码您创建的内容的代码,但该代码有其自身的问题。

如果您希望以JSON格式对NameValuePair列表进行编码,则可以在Android上使用GSON,在servlet中使用GSON或Jackson。请参阅https://code.google.com/p/google-gson/http://jackson.codehaus.org/

答案 1 :(得分:0)

您应该只使用

String order = request.getParameter("order");