Невозможно получить доступ к декодированным данным JSON из базы данных, используя назначенный ключ

У меня есть данные JSON, хранящиеся в моей базе данных, как это:

'field_data" => '{"primary":"apple"}'

Затем я декодирую его в массив:

$decoded = json_decode($query['field_data'],1);
echo $decoded['primary'];

Результат, который я получаю:

Undefined index: primary

Я вижу значение, если пытаюсь его отладить.
Я пытался декодировать данные, не обращаясь к базе данных, чтобы изолировать мою проблему

$data = '{"primary":"apple"}';
$decoded = json_decode($data,1);
echo $decoded['primary'];

и это работало нормально. Как мне получить доступ к значению из данных запроса, используя ключ?

0

Решение

Вот 'field_data" => '{"primary":"apple"}' упаковка field_data ты положил ' и ", Я думаю, что они оба должны быть либо ' или же ",

подобно
'field_data' => ‘{«primary»: «apple»}’

Хорошо, если я все правильно укажу в вашей базе данных, вы сохранили string который выглядит как array и вы пытаетесь получить к нему доступ $query['field_data'] что вы не можете сделать.

Строка выглядит как array отличается от string,

Если вы используете текущую реализацию, вы подходите так.

$str = '"field_data" => "{"primary":"apple"}"';
list($fieldName, $json) = explode('=>', $str);
var_dump($str,$fieldName, $json);

даже тогда нужно чистить $json как это все еще string

Но я предлагаю сохранить ваши данные, используя сериализации а затем доступ по десериализации. Тогда у вас будет полный контроль над вашими данными.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector