2012-07-31 72 views
3

在android上需要幫助。一直有這個錯誤Error Parsing data org.json.JSONException: Value <html> of type java.lang.String cannot be converted to JSONObject將字符串轉換爲JSON時出錯

下面是當我運行它時給我錯誤的頁面。

public class Login extends Activity { 

//URL to get User Data 
private static String URL_GET = "http://10.0.2.2/android_connect/get_authentication.php"; 

// JSON Node names 
private static final String TAG_SUCCESS = "success"; 
private static final String TAG_USERS = "Users"; 
private static final String TAG_EMAIL = "Email"; 
private static final String TAG_PASSWORD = "Password"; 

JSONParser jParser = new JSONParser(); 
String dbPassword = null; 
// users JSONArray 
JSONArray Users = null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // setting default screen to login.xml 
    setContentView(R.layout.login); 

    Button btn = (Button) findViewById(R.id.btnLogin); 


    // Listening to register new account link 
    btn.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 

      String password = ((EditText) findViewById(R.id.password)).getText().toString(); 
      new getAuthentication().execute(); 

      if (password.equals(dbPassword)) { 
       // Switching to Main screen 
       Intent i = new Intent(getApplicationContext(), EchoSphere.class); 
       startActivity(i); 
      } 
     } 
    }); 
} 
class getAuthentication extends AsyncTask<String, String, String>{ 

    @Override 
    protected String doInBackground(String... params) { 

     runOnUiThread(new Runnable() { 
      public void run() { 
       // Check for success tag 
       int success; 

       try { 
        String email = ((EditText) findViewById(R.id.email)).getText().toString(); 

        Log.d("email:", email); 

        List<NameValuePair> params = new ArrayList<NameValuePair>(); 
        params.add(new BasicNameValuePair(TAG_EMAIL, email)); 

        JSONObject json = jParser.makeHttpRequest(URL_GET, "GET", params); 
        Log.d("Password:", json.toString()); 

        success = json.getInt(TAG_SUCCESS);  

        if (success == 1) { 
         Users = json.getJSONArray(TAG_USERS); 
         JSONObject c = Users.getJSONObject(0); 
         dbPassword = c.getString(TAG_PASSWORD); 
         Log.d("DBPW:", dbPassword); 
        } 

        } catch (JSONException e) { 
        e.printStackTrace(); 
        } 

        } 

       }); 
     return null; 
    } 

} 
} 

這是PHP腳本,我驗證了PHP並顯示它正在工作。

<?php 
// array for JSON response 
$response = array(); 

// include db connect class 
require_once __DIR__ . '/db_connect.php'; 

// connecting to db 
$db = new DB_CONNECT(); 

// check for post data 
if (isset($_GET["Email"])) { 
$email = $_GET['Email']; 

// get a product from products table 
$result = mysql_query("SELECT Email, Password FROM Users WHERE Email = '$email'"); 

if (!empty($result)) { 
    // check for empty result 
    if (mysql_num_rows($result) > 0) { 

     $result = mysql_fetch_array($result); 

     $user[] = array(); 
     $user["Email"] = $result["Email"]; 
     $user["Password"] = $result["Password"]; 

     // user node 
     $response["Users"] = array(); 

     array_push($response["Users"], $user); 

     // success 
     $response["success"] = 1; 

     // echoing JSON response 
     echo json_encode($response); 
    } else { 
     // no product found 
     $response["success"] = 0; 
     $response["message"] = "No User found"; 

     // echo no users JSON 
     echo json_encode($response); 
    } 
} else { 
    // no product found 
    $response["success"] = 0; 
    $response["message"] = "No User found"; 

    // echo no users JSON 
    echo json_encode($response); 
} 
} else { 

// required field is missing 

$response["success"] = 0; 
$response["message"] = "Required field(s) is missing"; 

// echoing JSON response 
echo json_encode($response); 
} 
?> 

結果是,如圖

{"Users":[{"0":[],"Email":"1","Password":"123"}],"success":1} 

我不知道那裏的錯誤所在的。

+0

如果您查看源代碼/打印出http://10.0.2.2/android_connect/get_authentication.php的結果,那麼除了JSON之外還有其他什麼嗎? – henrikpersson 2012-07-31 11:50:56

+0

沒有別的出現,除了JSON只是結果 – 2012-07-31 11:52:53

+2

從服務器的響應是一個html錯誤頁面,我認爲,這就是爲什麼你得到json解析錯誤 – 2012-07-31 11:55:51

回答

0

我解決了這個錯誤。

謝謝大家的幫助。

我加

header('Content-type: application/json'); 

PHP腳本和應用程序可以運行。