Формат JSON в PHP

JSON представляет собой формат для хранения данных. Этот формат часто используется для обмена данными между сайтами, либо между сервером и браузером. Этот формат более компактный и простой по сравнению с XML, поэтому в настоящее время используется гораздо шире.

Аббревиатура JSON расшифровывается как JavaScript Object Notation. Дело в том, что изначально JSON был придуман в языке JavaScript, но теперь используется повсеместно.

С точки зрения PHP данные в формате JSON представляют собой строку:

php<?php
  $str = '
    // тут будет JSON
  ';
?>

Сам формат представляет собой некую многомерную структуру, состоящую из обычных и ассоциативных массивов. Элементами массивов могут быть строки обязательно в двойных кавычках, числа, значения true, false или null.

Давайте посмотрим на примерах. Сделаем массив с числами:

php<?php
  $str = '[1, 2, 3, 4, 5]';
?>

Сделаем массив со строками:

php<?php
  $str = '["a", "b", "c"]';
?>

Сделаем массив со смешанным содержимым:

php<?php
  $str = '[1, "a", true, false, null]';
?>

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

php<?php
  $str = '{
    "a": 1,
    "b": 2,
    "c": 3
  }';
?>

Можно комбинировать массивы и объекты в структурах любого уровня вложенности:

php<?php
  $str = '{
    "a": [1, 2, 3],
    "b": [4, 5, 6]
  }';
?>

Учтите, что висящие запятые после последнего элемента в формате JSON недопустимы:

php<?php
  $str = '[
    "a",
    "b", 
    "c",
  ]'; // последняя запятая лишняя
?>
Задание 1

Переделайте следующую структуру PHP в строку JSON:

php<?php
  $data = [1, 2, 3];
?>
Задание 2

Переделайте следующую структуру PHP в строку JSON:

php<?php
  $data = ['x', 'y', 'z',];
?>
Задание 3

Переделайте следующую структуру PHP в строку JSON:

php<?php
  $data = [
    'x' => 'a',
    'y' => 'b',
    'z' => 'c',
  ];
?>
Задание 4

Переделайте следующую структуру PHP в строку JSON:

php<?php
  $data = [
    'ru' => ['1', '2', '3'],
    'en' => ['a', 'b', 'c'],
  ];
?>