1

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

安卓代码:

**

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

**

小服务程序代码:

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--order=%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。

4

2 回答 2

1

数据不是 JSON 格式或 XML 格式。您的代码创建 Url-Encoded 格式。 URL 编码和解码 Java 中的特殊字符描述了对您创建的内容进行解码的代码,但该代码有其自身的问题。

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

于 2013-03-17T18:38:55.437 回答
0

你应该简单地使用

String order = request.getParameter("order");
于 2013-03-17T18:38:44.663 回答