Конвертируем JSON формат в PHP за счет json_encode(). Часть 3

Конвертируем JSON формат в PHP за счет json_encode(). Часть 3

json_encode позволяет формировать JSON формат в PHP в виде строки. В качестве входных данных, обычно используется ассоциативный массив, что очень удобно.

Синтаксис: json_encode ($value, [$options, $depth]);

value - значение, которое будет закодировано, кроме resource. Строковые данные должны быть в UTF-8 кодировке.
options - битовая маска, которая может изменять процесс формирования JSON строки
depth - Задает максимальную глубину, которая должна быть больше 0.

Обязательным является только параметр value.

Важно замечание на счет кавычек, в ассоциативном массиве - двойные экранировать, а одинарные передавать как есть. Об этом я писал ранее. По умолчанию всегда создает объект для ассоциативного массива с ключами

Примеры

$json_data = array("id"=>100,"gorod"=>"Moscow","country"=>"Russia","phone"=>array("ZTE"," Blade")); //Это ассоциативный массив
echo json_encode($json_data);

Создаст JSON объект: {"id":100,"gorod":"Moscow","country":"Russia","phone":["ZTE"," Blade"]}

$json_data = array(1, "ivan", 'Russia', array("yandex"," management")); //Это массив
echo json_encode($json_data).'<br><br>';

Создаст JSON массив: [1,"ivan","Russia",["yandex"," management"]]

Теперь вы знаете как формировать JSON массивы и объекты.

Говоря о json_encode стоит отметить его работу с кириллицей. Если попытаться кодировать русскоязычную строку, то на выходе мы будем получать такие u041f\u0440 "кракозябры". Они могут записываться в БД и нормально декодироваться обратно в кириллицу с помощью json_decode.

Но если вы хотите порядок в БД и коде, то можете использовать маску JSON_UNESCAPED_UNICODE - она позволит нормально работать с Unicode символами.

Пример: $params = json_encode($Param, JSON_UNESCAPED_UNICODE);

Единственный минус маски - она доступно начиная с версии PHP 5.4. Поэтому пользователям старого Денвера придется переходить на Open Server. На нормальных хостингах уже давно php 5.6-7.

Снизу разместил несколько полезных масок, которые вам могут пригодиться:

  • JSON_UNESCAPED_SLASHES - не экранировать символ /
  • JSON_HEX_APOS - символы ' записываются в \u0027
  • JSON_HEX_QUOT - символы " записываются в \u0022
  • JSON_HEX_TAG - символы < и > записываются как \u003C и \u003E
  • JSON_HEX_AMP - символы & записываются в \u0026
  • JSON_FORCE_OBJECT - выдавать объект вместо массива при использовании не ассоциативного массива
  • JSON_UNESCAPED_UNICODE - Не кодировать многобайтные символы Unicode (для нормальной работы с кириллицей)

Читайте далее о том, как получать JSON, изменять его и сохранять обратно.

| | Конвертируем JSON формат в PHP за счет json_encode(). Часть 3 | json_encode позволяет формировать JSON формат в PHP в виде строки. В качестве входных данных, обычно используется ассоциативный массив, что очень удоб | http://blogprogram.ru/wp-content/uploads/2017/07/714-131x131.jpg

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>