【问题标题】:retrieve json in servelt sent from android检索从android发送的servlet中的json
【发布时间】:2013-03-17 18:14:54
【问题描述】:

我在从 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--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。

【问题讨论】:

    标签: android servlets


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的宝贵时间。我会试试的。
    【解决方案2】:

    你应该简单地使用

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

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 1970-01-01
      • 2016-11-17
      • 2012-08-15
      • 2015-06-22
      • 2014-10-16
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多