Как Томаш Ковальчик уже предложил это сделать, json_decode
- отличная нативная функция.
Иногда это может быть неприятно, когда код не работает так, как вы ожидаете, но люди действительно пытаются помочь. Когда что-то не работает так, как вы хотите, обязательно включите , как это не сработало для вас.
$x = '{ "info": { "apiVersion": "1.1", "clientFeatures": ["all"], "clientTime": "2014-11-27T23:04:27.542Z", "emotions": [], "input": "who+created+you", "isNewUser": true, "locale": "en", "location": "53.0%2C9.0", "login": "mashape", "responseTime": 948 }, "output": [{ "actions": { "custom": {}, "say": {"text": "I was created by the cool guys from Pannous."} }, "entities": { "dialoguesInfo": { "dialog": "Sandbox", "dialog_id": "63", "forced": false, "initiative": false, "match_id": "205233", "matchscore": "3.77", "response_id": "205224" }, "input": "who+created+you", "locale": "en" }, "responseTime": 673, "results": {} }] }';
Чем json_decode
и var_dump
, чтобы увидеть результат.
var_dump(json_decode($x));
Результат:
class stdClass#1 (2) { public $info => class stdClass#2 (10) { public $apiVersion => string(3) "1.1" public $clientFeatures => array(1) { [0] => string(3) "all" } public $clientTime => string(24) "2014-11-27T23:04:27.542Z" public $emotions => array(0) { } public $input => string(15) "who+created+you" public $isNewUser => bool(true) public $locale => string(2) "en" public $location => string(10) "53.0%2C9.0" public $login => string(7) "mashape" public $responseTime => int(948) } public $output => array(1) { [0] => class stdClass#3 (4) { public $actions => class stdClass#4 (2) { ... } public $entities => class stdClass#7 (3) { ... } public $responseTime => int(673) public $results => class stdClass#9 (0) { ... } } } }
Как вы можете видеть, json_decode
работает отлично. Для полного выполнения данных вместо var_dump
выполните то же, что указано выше, но используйте print_r
.
Помните, что если вы хотите декодированные данные в виде массива, используйте json_decode($yourData, true)
Отсюда, теперь должно быть ясно, как получить доступ, данные, которые вы хотите. Если нет, не беспокойтесь, решение близко, просто напишите комментарий о том, какие части вас путают.
SPOILER
Я добавил небольшой фрагмент для вас здесь https://eval.in/227351 Основном 0 смещение, что дает вам трудное время ...
$foo = json_decode($x, TRUE); var_dump($foo['output'][0]['actions']);
'json_decode()' является ваш друг. –
Затем научитесь правильно использовать его. Если он не работает, ваши данные будут обработаны. –
Не грубите, обновите свой вопрос с помощью результатов 'json_decode()'. Также проверьте его содержимое, передавая 'true' как второй аргумент, который преобразует его в массив вместо экземпляров' stdClass'. –