Я работаю над веб-сайтом, на котором хочу извлечь переменную JSON в php. Код, который я использовал для этого:
<div class = "tab-pane" id = "policies">
<p>
<span class = "heading_size">policies:</span>
</p>
<p class = "text-justify mb-0 pb-5">
<?php
echo strtolower($data['item']->company_policy->description);
?>
</p>
</div>
В приведенном выше коде следующая строка echo strtolower($data['item']->company_policy->description);, похоже, ничего не печатает, но для целей отладки, когда я добавил <?php echo $data['item']; ?>, она извлекает следующие фрагменты JSON:
"company_policy": {
"company_policy_id": 2,
"uuid": "B4d2aa790",
"name": "Reasonable",
"description": "a.) Hello World. ",
"cutoff_time": 96,
"percentage": "1.00"
},
Понятно, что для извлечения описание из приведенного выше JSON я должен использовать echo strtolower($data['item']->company_policy->description);, но он, похоже, не извлекает ничего, как описано выше.
Постановка задачи:
Мне интересно, какие изменения я должен внести в приведенный выше echo statement, чтобы я мог успешно извлекать данные из JSON.
@KhoaTruongDinh Что мне здесь писать? echo strtolower($data['item']->company_policy->description);
@flash Строка в формате JSON с точки зрения PHP - это просто строка. Как было сказано ранее, вам нужно использовать json_decode(). При отладке кода всегда проверяйте включить отчет об ошибках или проверяйте файл журнала ошибок. Вы, вероятно, получили бы какую-то ошибку при этом, потому что пытаетесь рассматривать строку как объект.
@Mike Спасибо за ответ. Вы можете сообщить мне, что именно мне нужно использовать?
@Mike, как вместо этого эха strtolower($data['item']->company_policy->description);, что я должен использовать?
Вы читали ссылку в комментарии Пола Кровеллы выше?
да я читал его комментарий.
@flash Вы перешли по ссылке в его комментарии, перешли на другую страницу и прочитали там первый ответ? Это довольно подробно.






Согласно документации, вам нужно указать, хотите ли вы ассоциативный массив вместо объекта из json_decode, это будет код: json_decode ($ jsondata, истина);
Сначала вы декодируете данные json с помощью json_decode
<?php $jsonData = json_decode($data['item'], true); ?>
<div class = "tab-pane" id = "policies">
<p>
<span class = "heading_size">policies:</span>
</p>
<p class = "text-justify mb-0 pb-5">
<?php
echo strtolower($jsonData['company_policy']['description']);
?>
</p>
</div>
Хорошо, это сработало. Спасибо за помощь. Мне интересно, почему это не работает на моем пути? Мне это очень любопытно.
json_decode($data['item'], true)