2017-01-09 2 views
-1

Вот моя проблема:com.android.volley.ParseError: org.json.JSONException: Значение <бр типа java.lang.String не могут быть преобразованы в JSONArray

Я пытаюсь получить данные с сервера через PHP в android и всякий раз, когда я пытаюсь это сделать, я получаю эту ошибку:

[com.android.volley.ParseError: org.json.JSONException: значение br типа java.lang.String не может быть преобразовано в JSONArray]

Я уверен, что мой код правильный, потому что я попытался использовать данные от https://jsonplaceholder.typicode.com/ , и это сработало.

Я использую сервер xampp и использую php для подключения.

вот мой Java код:

final String url1 = "http://192.168.0.101/deliveryApp/sellerProfile.php"; 

    JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(url1, new Response.Listener<JSONArray>() { 
     @Override 
     public void onResponse(JSONArray response) { 

      Log.v("response is : ", String.valueOf(response)); 

      for (int i = 0 ; i < response.length() ; i++){ 
       try{ 
        JSONObject jsonObject = response.getJSONObject(i); 

        String tvfirstname = jsonObject.getString("firstname"); 
        String tvlastname = jsonObject.getString("lastname"); 
        String tvphonenumber = jsonObject.getString("email"); 
        String tvemail = jsonObject.getString("phonenumber"); 

        sellername.setText(tvfirstname +" "+ tvlastname); 
        selleremail.setText(tvemail+" "); 
        sellerphonenumber.setText(tvphonenumber+" "); 

       }catch (JSONException e){ 

       } 
      } 

     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      System.out.println(error); 
     } 
    }); 
    requestQueue.add(jsonArrayRequest); 

мой PHP скрипт для этого:

<?php 
    $dbname = "delivery_app"; 
    $username = "root"; 
    $password = ""; 
    $host = "localhost"; 

    $connection=mysqli_connect($host,$username,$password,$dbname); 

    session_start(); 
    $email = $_SESSION['tempemail']; 
    //$email   = $_POST["email"]; 

    $querySellerProfile = "SELECT * FROM login WHERE email = '$email'"; 

    if($fetchresult = mysqli_query($connection,$querySellerProfile)){ 
     while ($response = mysqli_fetch_array($fetchresult)) { 

      // echo $response['firstname']; 
      // echo $response['lastname']; 
      // echo $response['email']; 
      // echo $response['phonenumber']; 
      // echo $response['password']; 

      $response2[] = $response; 
     } 

     echo json_encode($response2); 

    }else{ 
     die("failed to get profile information"); 
    } 

/* 
    THIS CODE WILL RETRIEVE USER DATILS , AND ITS WORKING PERFECTLY 
*/ 
?> 

и ответ от сервера:

[ 
    { 
    "0": "2", 
    "1": "testfname", 
    "2": "testlname", 
    "3": "testemail", 
    "4": "9650684491", 
    "5": "5555", 
    "id": "2", 
    "firstname": "testfname", 
    "lastname": "testlname", 
    "email": "testemail", 
    "phonenumber": "9650684491", 
    "password": "5555" 
    } 
] 

Я использовал Почтальон приложение проверьте, работает ли мой php или нет, и так оно и было.

Я просто не могу найти проблему с моим кодом.

Любая помощь будет оценена по достоинству.

ответ

0

Попробуйте вот так.

JSONARRAY array = new JSONARRAY (response);

Затем используйте массив в цикле.

+0

не могли бы вы уточнить ?? –

Смежные вопросы