特殊特殊字符的组合导致错误

时间:2013-03-04 08:54:55

标签: java android json

当我将TextEdit数据作为JSON发送时,数据作为";的组合,每次都会失败。 详细地说,如果我输入的用户名不是密码";,那么生成的JSON文件如下所示: -

{"UserName":"qa@1.com","Password":"\";"}

我搜索了很多,我能理解的是结果JSON数据消除了导致抛出Default异常的语法。我试图通过使用URLEncoder.encode()方法摆脱特殊符号。但现在问题在于解码。 任何步骤的任何帮助都将非常感激。

logcat的:

I/SW_HttpClient(448): sending post: {"UserName":"qa@1.com","Password":"\";"}
I/SW_HttpClient(448): HTTPResponse received in [2326ms]
I/SW_HttpClient(448): stream returned: <!DOCTYPE html PUBLIC ---- AN HTML PAGE.... A DEFAULT HANDLER>

4 个答案:

答案 0 :(得分:0)

您好,请尝试以下代码

String EMPLOYEE_SERVICE_URI = Utils.authenticate+"?UserName="+uid+"&Email="+eid+"&Password="+URLEncoder.encode(pwd,"UTF-8");

答案 1 :(得分:0)

您在问题中提供的JSON是有效的。

字符串中的JSON规范需要双引号才能使用反斜杠进行转义。请阅读此处的语法图表 - http://www.json.org/

如果在解析JSON时出现异常,那么解析器就会出错,或者异常意味着其他东西。


  

我已经搜索了很多,我能理解的是结果JSON数据消除了语法

您的理解不正确。

  

我尝试使用URLEncoder.encode()方法删除特殊符号。

这是一个错误,只会让事情变得更糟:

  1. 反斜杠应该在那里。
  2. 服务器或任何处理JSON的东西都不会期望从完全不同的标准中随机逃避。
  3.   

    但现在问题在于解码。

    完全。

答案 2 :(得分:0)

以下提供的JSON可以通过GSON库解析,代码如下

private String sampledata = "{\"UserName\":\"qa@1.com\",\"Password\":\"\\\";\"}";

Gson g = new Gson();
g.fromJson(sampledata, sample.class);



public class sample {

    public String UserName;
    public String Password;
}

答案 3 :(得分:0)

为了解码文本我得到了解决方案..

 URLDecoder.decode(String, String);