Ответ 1
Я думаю, что вы хотите json_encode
, а не json_decode
.
Что вызывает эту ошибку в моем коде?
$query = $this->db->query("SELECT * FROM tour_foreign ORDER BY id desc");
$data = array();
foreach ($query->result() as $row)
$data[] = array('guide' => $row->guide);
echo json_decode($data); //Line 167
ошибка:
erro: json_decode() expects parameter 1 to be string, array given: Line Number: 167
ОБНОВИТЬ:
Если я использую json_encode
вместо json_decode
, мой вывод будет таким:
[{"guide":["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":null}]
Это персидские слова.
Я думаю, что вы хотите json_encode
, а не json_decode
.
Установите для декодирования значение true
Ваше декодирование не установлено в true. Если у вас нет доступа к источнику, установите значение true. Код ниже исправит это для вас.
$WorkingArray = json_decode(json_encode($data),true);
json_decode() используется для декодирования строки json для объекта array/data. json_encode() создает строку json из массива или данных. Вы используете неправильную функцию, мой друг, попробуйте json_encode();
Вам нужно установить в true. Если у вас нет доступа к источнику, закодируйте и декодируйте его.
$answer = json_decode(json_encode( $_GET['json'] ), true );
вот решение для аналогичной проблемы, с которой я столкнулся при извлечении имени из профиля пользователя facebook json object
$uname=json_encode($userprof);
$uname=json_decode($uname);
echo "Welcome " . $uname -> name ;