Проблема форматирования Json при вызове PHP из Java

Я называю данные MySQL в Java следующим образом:

JSONObject jo = new JSONObject(result).getJSONArray("server_response").getJSONObject(0);
if (jo.getString("success").equals("1"))
....

PHP:

   $dbhost = 'localhost';
$dbuser = 'xxxx';
$dbpass = 'xxxx';
$conn =  mysqli_connect($dbhost, $dbuser, $dbpass,'test_db');

if(! $conn ) {
$response["success"] = 0;
$response["message"] = "No connection.";
header('Content-type: application/json');
echo json_encode(array("server_response"=>$response));
exit;
}

$sql = "Select * from employee ".
"where 1=1 ";// array for JSON response
$response = array();
$retval = mysqli_query($conn,$sql );

if(! $retval ) {

$response["success"] = 0;
$response["message"] = "User not found.";
}
else{

$response["success"] = 1;
$response["message"] = "User has been found.";

// echoing JSON response}
header('Content-type: application/json');
echo json_encode(array("server_response"=>$response));

Получение результата в браузере как:

{«server_response»: {«success»: 1, «message»: «Пользователь найден.»}}

но мне кажется, что я не получаю значения в правильном формате json, которые Java может интерпретировать, следовательно, код не выполняется дальше.

1

Решение

Изменен файл PHP последней строки, чтобы:

echo json_encode(array("server_response"=>array($response)));
0

Другие решения

Я не уверен, но в ответе сервера строка с идентификатором «message» пишется в скобках «». Но у «успеха» не было скобок, может быть, Java рассматривает его как int и, когда вы пытаетесь сравнить со строкой («1»), возвращает false.

-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector