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'],
  ];
?>