我輸入錯誤「解析數據時出錯org.json.JSONException:字符10輸入結束於」。我用Chrome的插件郵差測試了我的PHP,服務器端似乎沒問題。請查看下面的代碼並感謝您的幫助。解析數據時出錯org.json.JSONException:字符10輸入結束時
PHP代碼:
public function login($alias, $password){
$user_info = $this->getUserFromDatabase($alias, $password);
if ($user_info != false){
$response["success"] = "true";
$response["user_id"] = $user_info["userID"];
$response["userFirstName"] = $user_info["userFirstName"];
$response["userRank"] = $user_info["userRank"];
echo json_encode($response);
}else{
$response["success"] = "false";
$response["error"] = "true";
echo json_encode($response);
}
}
public function getUserFromDatabase($android_alias, $android_password) {
$db_query = mysql_query("SELECT userID, userFirstName, userRank FROM capUserTable
WHERE userAlias = '$android_alias' AND userPassword = '$android_password'")
or die(mysql_error());
$query_results = mysql_fetch_assoc($db_query);
return $query_results;
}
郵差結果:
{
"success": "true",
"user_id": "1",
"userFirstName": "username",
"userRank": "99"
}
Java代碼:
private InputStream inputStream = null;
private JSONObject jObject = null;
private String json = "";
public JSONparser() {
}
public JSONObject getJSONFromURL(String URL, List<NameValuePair> params){
try{
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
inputStream = httpEntity.getContent();
}catch(UnsupportedEncodingException e){
e.printStackTrace();
Log.e("UnsupportedEncodingException", "Unsupported Encoding Exception" + e.toString());
}catch(ClientProtocolException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"), 10);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null){
sb.append(line + "\n");
}
inputStream.close();
json = sb.toString();
}catch(Exception e){
Log.e("Buffer Error", "Error converting result " + e.toString());
}
try{
jObject = new JSONObject(json); //this is where the problem occurs
}catch(JSONException e){
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
return jObject;
}
後堆棧跟蹤用問題 – 2013-03-12 05:01:22
在android中記錄json變量的內容並檢查它。 – Josnidhin 2013-03-12 05:03:26
hi josnidhin,json變量爲null。 – thienwgu 2013-03-12 05:07:24