Извлечение объекта json из массива - PullRequest
0 голосов
/ 17 октября 2018

Я использую php / Laravel, и у меня есть ответ от API, который возвращает в моем контроллере следующий формат:

[
  {
  "id": "474",
  "room_id": "14",
  "user_id": "20",
  "name": "121001.webm",
  "fname": "",
  "status": "0",
  "date_recorded": "October 17 2018 07:18:51",
  "size": "396135",
  "is_public": "0",
  "allow_download": "0",
  "privatekey": "",
  "duration": "0",
  "record_path": "https:example/url/test.mp4",
  "record_url": "https:example/url/test.mp4"
  }
]

Я считаю, что это массив внутри массива, это объект json iя хочу получить данные, поэтому, например, я хочу идентификатор записи.Я использовал эти решения без удачи:

$response->record_url;
$response[0]->record_url;

также пытался кодировать или декодировать $response

Любая помощь будет принята с благодарностью

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

Попробуйте этот код

var_dump(json_decode($response)->record_url);
0 голосов
/ 17 октября 2018

Пожалуйста, обратитесь к приведенной ниже программе и соответствующим выходным данным:

$json = '[
{
"id": "474",
"room_id": "14",
"user_id": "20",
"name": "121001.webm",
"fname": "",
"status": "0",
"date_recorded": "October 17 2018 07:18:51",
"size": "396135",
"is_public": "0",
"allow_download": "0",
"privatekey": "",
"duration": "0",
"record_path": "https:example/url/test.mp4",
"record_url": "https:example/url/test.mp4"
}
]';

$array1 = json_decode($json, false);
echo $array1[0]->id //This will print the value of id which is 474.

$array2 = json_decode($json, true);
echo $array2[0]['id'] // This will also print th evalue of id which is 474.

Второй параметр функции json_decode имеет значение Boolean, если TRUE, возвращенные объекты будут преобразованы в ассоциативные массивы.

Спасибо

0 голосов
/ 17 октября 2018

В строке JSON у вас есть и массив с одним элементом, являющимся объектом.

Теперь, в зависимости от того, как вы его декодируете, вы получите PHP и массив с stdClass объектом, илимассив с ассоциативным массивом внутри.

//this will return array with stdClass object
$data = json_decode($json);
echo $data[0]->record_url;


//this will return array with associative array
$data = json_decode($json, true);
echo $data[0]['record_url'];

Рабочий код: https://3v4l.org/TJNQ1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...