0

アプリの組み合わせとして TextEdit データを JSON として送信すると、 ";毎回失敗します。";結果のJSONファイルが次のようになるため、パスワード以外のユーザー名を入力している場合の詳細:-

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

私はたくさん検索しましたが、結果のJSONデータが構文を無効にし、デフォルトの例外をスローすることを理解できました。URLEncoder.encode()メソッドを使用して特殊記号を取り除こうとしました。しかし今、問題はデコードにあります。どの段階でも、どんな助けも非常に感謝しています。

ログキャット:

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

4 に答える 4

0

テキストをデコードするために、私は解決策を得ました。

 URLDecoder.decode(String, String);
于 2013-03-05T12:20:39.347 に答える
0

質問で提供した JSON は有効です。

JSON 仕様では、文字列内の二重引用符をバックスラッシュでエスケープする必要があります。ここで構文グラフを読んでください - http://www.json.org/

その JSON の解析中に何かが例外をスローしている場合は、パーサーにバグがあるか、例外が別のことを意味しています。


私はたくさん検索しましたが、結果のJSONデータが構文を無効にすることを理解できました

あなたの理解は間違っています。

URLEncoder.encode() メソッドを使用して特殊記号を取り除こうとしました。

これは間違いであり、事態を悪化させるだけです。

  1. バックスラッシュが存在する必要があります。
  2. サーバーまたはJSONを処理するものは、まったく異なる標準からのランダムなエスケープを期待していません。

しかし今、問題はデコードにあります。

丁度。

于 2013-03-04T09:09:56.113 に答える
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;
}
于 2013-03-04T09:26:22.177 に答える
0

こんにちは、次のコードを試してください

String EMPLOYEE_SERVICE_URI = Utils.authenticate+"?UserName="+uid+"&Email="+eid+"&Password="+URLEncoder.encode(pwd,"UTF-8");
于 2013-03-04T08:59:53.007 に答える