json decode() ожидает, что параметр 1 будет строкой, массив задан
Что вызывает ошибку в моем коде?
$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}]
Это персидское слово.
5 answers
Я думаю, ты хочешь json_encode
, нет json_decode
.
Для вашего декодирования не установлено значение true. Если у вас нет доступа, установите для источника значение true. Приведенный ниже код исправит это за вас.
$WorkingArray = json_decode(json_encode($data),true);
Json_decode() используется для декодирования строки json в объект массива/данных. json_encode() создает строку json из массива или данных. Вы используете неправильную функцию, мой друг, попробуйте json_encode();
Карим!!!! спасибо
Php-----------------------------------------------------------------------------
header('Content-type: application/json');
header("access-control-allow-origin: *");
...
....
$answer = json_decode(json_encode( $_GET['json'] ), true );
//echo $answer[0]['preguntaid'] ;
echo $_GET['jsoncallback'] . '(' . json_encode($answer ) . ');'; // for JSONP
Php-------------------------------------------------------
JQUERY (ЗАПРОС)------------------------------------------------------- ...
$.ajax({
url: 'http:XXXXXXXXXvalidar_respuestas.php',
dataType: 'jsonp',
type: "GET",
jsonp: 'jsoncallback',
crossDomain: true,
data : { json : [{"preguntaid":151,"alternativa":427,"respuesta":"false"},{"preguntaid":151,"alternativa":428,"respuesta":"true"}] } , // { }
timeout: 5000,
success: function(data){
...`
РАБОТАЕТ для меня
Вот решение аналогичной проблемы, с которой я столкнулся при извлечении имени из профиля пользователя facebook json объекта
$uname=json_encode($userprof);
$uname=json_decode($uname);
echo "Welcome " . $uname -> name ;