2

こんにちは、2.3 で Android JSON パーサーに問題が発生しました。4.0 では問題ありません。

彼らがエンコーディング(サーバー)またはその他のサーバー側について話している他のトピックを見ていますが、すべてのJSONフィールドに「テスト」を入れようとしましたが、問題はまだ解決していません。

これが私のコードです:

URL url = new URL(c.getString(R.string.url_ws) + url_ws);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestMethod("POST");
OutputStreamWriter request = new OutputStreamWriter(connection.getOutputStream());
request.write("&test=test");
request.flush();
request.close();


String line;
InputStreamReader isr = new InputStreamReader(connection.getInputStream());
BufferedReader reader = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();

while ((line = reader.readLine()) != null){
    sb.append(line + "\n");
}
String json = sb.toString().trim();
try {
     JSONObject obj = new JSONObject(json);
} catch (JSONException e) {
    e.printStackTrace();
    Log.d(Tools.TAG+"/debug JSONException", e.toString());
    return null;
}

ここに私の例外があります

debug JSONException(4184): org.json.JSONException: Value  of type java.lang.String cannot be converted to JSONObject

「Value」と「of」の間に二重スペースがあったので、問題は空の文字列だと思いますが、わかりません。

ありがとう。

編集

私のJSONのエンコードミスでした。

char a = json.substring(0, 1).charAt(0);
int ascii = (int)a;
Tools.myLog(">"+ascii+"<"); 

私は65279文字を見つけました

解決

なぜ  私のHTMLに表示されますか?

BOM なしの UTF-8 エンコード。

4

1 に答える 1