Я абсолютно новый в PHP и более того в Laravel framework (я не знаю, предоставляет ли Laravel некоторый класс полезности для таких задач). Я пришел от Java.Как я могу разобрать объект JSON в PHP? Как я могу получить значения некоторых конкретных полей этого объекта JSON?
Так что у меня следующая проблема:
в класс я выполнить вызов к REST веб-сервиса, что-то вроде этого:
$response = $client->get('http://localhost:8080/Extranet/login',
[
'auth' => [
'[email protected]',
'pswd'
]
]);
$dettagliLogin = json_decode($response->getBody());
\Log::info('response: '.(json_encode($dettagliLogin)));
$ response-> getBody() содержит вернулся JSON объект, это выход из предыдущего \ Log :: Информация():
{
"id":5,
"userName":"Dummy User",
"email":"[email protected]",
"enabled":true
}
Так у меня есть следующие проблемы:
1) Что именно возвращает json_decode() функцию? Я действительно не могу понять, потому что PHP не сильно типизирован, и у меня нет объявленного типа возврата.
Это метод подпись:
function json_decode($json, $assoc = false, $depth = 512, $options = 0)
и в соответствующем документе он говорит @return смешан. Что означает exatly mixed?
2) Во всяком случае, основная проблема заключается в: Я должен использовать содержание предыдущего возвращенное JSON объект и поместить эти значения в соответствующем поле массива, как это:
$attributes = array(
'id' => HERE THE id FIELD VALUE OF MY JSON OBJECT,
'username' => HERE THE email FIELD VALUE OF MY JSON OBJECT',
'name' => HERE THE userName FIELD VALUE OF MY JSON OBJECT,
);
Так что я думаю что мне нужно разобрать значение $ response-> getBody() или json_decode ($ response-> getBody()), чтобы получить эти значения. Но как именно я могу это сделать? Каким образом это сделать? Larvel fframework дает некоторую полезность для этого?
Tnx
Там нет такого понятия, как "JSON объект" (даже если Java притворяется есть). [JSON] (https://en.wikipedia.org/wiki/JSON) - текстовое представление некоторой структуры данных. Его можно использовать для воссоздания структуры данных, используемой для ее создания. – axiac
Самый быстрый способ понять, как это выглядит, только $ dettagliLogin = json_decode ($ response-> getBody()); 'dd ($ dettagliLogin);' Это выведет декодированную переменную JSON, чтобы вы могли видеть, что это такое. Это может быть объект, массив, число, зависит от ответа. – fureszpeter
ответил ли мой ответ? –