PHP JSON - закодировать и раскодировать

Опубликовано 2021.08.21

Json - это формат отображения структурированных данных. Он очень удобен для хранения и передачи. Этот стандарт унифицирован и одинаково работает во всех языках программирования.

То есть, условно, код на Java может упаковать данные в json, сохранить их в БД, php скрипт их прочитает, передаст в браузер и их прочитает JavaScript.

В php превратить в json можно массив, ассоциативный массив или объект.

Для превращения объекта в массив используется функция json_encode, а для превращения json строки обратно в объект - функция json_decode.

Пример с массивом:

  1. $array = ["car" => "ford", "year" => 1966];
  2. echo json_encode($array);

Выведет {"car":"ford","year":1966}

Пример с объектом:

  1. $object = new stdClass();
  2. $object->cars = ["bmw", "audi", "dodge"];
  3. $object->point = [123, 477];
  4. echo json_encode($object);

Выведет {"cars":["bmw","audi","dodge"],"point":[123,477]}

Как видите - в объекты могут быть вложены массивы или другие объекты. Вложенность может быть неограниченной.

И пример парсинга json строки:

  1. $json_string = '{"car":"ford","year":1966}';
  2. $array = json_decode($json_string);
  3. print_r($array);

Выведет:

  1. stdClass Object
  2. (
  3. [car] => ford
  4. [year] => 1966
  5. )

Обратите внимание - выведен будет объект. Если вам нужен ассоциативный массив - добавьте к json_decode второй аргумент, равный true:

  1. $json_string = '{"car":"ford","year":1966}';
  2. $array = json_decode($json_string, true);
  3. print_r($array);

Выведет:

  1. (
  2. [car] => ford
  3. [year] => 1966
  4. )