Меню Закрыть

Php json decode в массив

Содержание

У меня есть объект Json, который получен в PHP как строка …. не объект — я хочу преобразовать его в массив PHP, теперь я могу создать функцию, которая удаляет строку и удаляет скобки … позиционировать все ключи и значения в их положении … но мне интересно, может быть, есть лучший способ …

Строка json печатается …. вот почему она приходит как строка

я использую ионизировать Framework — который основан на codeigniter — вот тег, который создает тег images:

Как и просили в комментариях:

даст — в представлении (не в исходном коде)

Решение

json_decode ожидает допустимой строки JSON для ввода. Ваш ввод не является строкой JSON. Ваш ввод — это элемент XML. Когда вы пытаетесь json_decode что-то, что не является строкой JSON, декодирование не удастся.

Ionize, по-видимому, удаляет тег до json_decode выполняется, но поскольку вы заключили элемент в одинарные кавычки, json_decode будет просто обрабатывать ввод как строку. Так что вам нужно использовать

Однако JSON, созданный из тега, также недопустим:

Поэтому обязательно передайте действительный JSON, например, исправить код, который производит JSON:

Ранее вы бы json_encode изображения в строку, а затем json_encode эта строка снова. Это, очевидно, не будет производить коллекцию, а просто объединит отдельные объекты или массивы.

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

использовать второй параметр json_decode

Это было сложнее, чем я думал, но наконец-то все готово . я добавил комментарии в мой код, чтобы это было понятно.

Понял … так как строка была искажена, поэтому она не может быть декодирована как JSON, так

json_decode — Преобразование данных из формата JSON в массив

Описание

Takes a JSON encoded string and converts it into a PHP variable.

Читайте также:  Магнитола jvc kd g727 инструкция

JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми.

Список параметров

The json string being decoded.

When TRUE , returned object s will be converted into associative array s.

Возвращаемые значения

Returns an object or if the optional assoc parameter is TRUE , an associative array is instead returned.

Примеры

Пример 1. json_decode() examples

Результат выполнения данного примера:

Обратите внимание все спецсимволы, такие как табуляция( ), перевод строки(
) должны экранироваться обратным слешем.

I am trying to decode a JSON string into an array but i get the following error.

Fatal error: Cannot use object of type stdClass as array in C:wampwww empasklaila.php on line 6

Here is the code:

12 Answers 12

As per the documentation, you need to specify if you want an associative array instead of an object from json_decode , this would be the code:

This is a late contribution, but there is a valid case for casting json_decode with (array) .
Consider the following:

If $jsondata is ever returned as an empty string (as in my experience it often is), json_decode will return NULL , resulting in the error Warning: Invalid argument supplied for foreach() on line 3. You could add a line of if/then code or a ternary operator, but IMO it’s cleaner to simply change line 2 to .

. unless you are json_decode ing millions of large arrays at once, in which case as @TCB13 points out, performance could be negatively effected.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.