【发布时间】:2013-07-23 08:07:44
【问题描述】:
您好,我在 2.3 中遇到了 Android JSON Parser 的问题,在 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 个字符
解决方案
Why is  appearing in my HTML?
在没有 BOM 的情况下编码 UTF-8。
【问题讨论】:
-
stackoverflow.com/questions/17792779/…。相似的!。发布你的 json。
-
JSONArray obj = new JSONArray(json);使用它而不是 JSONObject obj = new JSONObject(json);
-
我的 JSON 不是数组:{"bHasError":false,"sSessionId":"5e10be14c408732179aa4731899882fd","iMembreId":7510064,"iCurrentDate":1374565720 ....
-
你需要显示 JSON 响应
-
在创建 JSONObject 之前记录字符串,以便查看它是否为 json 字符串。