Я создаю приложение для Android и пытаюсь прочитать данные json, возвращенные с PHP (Laravel).Невозможно прочитать объект JSON в Android
Вот PHP код:
$id = $request->input('id');
$customer = Customer::find(array('id' => $id));
if(!isset($customer))
return json_encode(array('message'=>'empty'));
else
return json_encode(array('message'=>'found', 'customer' => $customer));
Вот ответ JSON я получаю:
{"message":"found","customer":[{"id":1,"phone":"1234567890","name":"abc","photo":"","status":"active","created_at":"2016-01-18 09:23:10","updated_at":"-0001-11-30 00:00:00"}]}
Вот Android код:
client.get(Utility.server + "/get-customer-info", params, new AsyncHttpResponseHandler() {
// When the response returned by REST has Http response code '200'
@Override
public void onSuccess(String response) {
try {
JSONObject obj = new JSONObject(response);
if (obj.getString("message").equals("found")) {
JSONObject customer = obj.getJSONObject("customer");
String id = customer.getString("id");
String name = customer.getString("name");
String phone = customer.getString("photo");
String photo = customer.getString("photo");
String status = customer.getString("status");
String createdAt = customer.getString("created_at");
Utility.customer = new Customer(id, name, phone, photo, status, createdAt);
Intent i = new Intent(SplashActivity.this, MainActivity.class);
startActivity(i);
}
else if (obj.getString("message").equals("empty")) {
Intent i = new Intent(SplashActivity.this, WelcomeActivity.class);
startActivity(i);
}
else {
Toast.makeText(getApplicationContext(), "Invalid data", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
Toast.makeText(getApplicationContext(), "Error Occured [Server's JSON response might be invalid]!", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
Внутренний объект клиента как массив, и я не могу прочитать его с помощью JSONObject или JSONArray. Я получаю ошибку несоответствия типов для заявления:
JSONObject customer = obj.getJSONObject("customer");
«клиент» - это массив? – Brendon