Formát JSON v PHP

JSON je formát pro ukládání dat. Tento formát se často používá pro výměnu dat mezi weby, nebo mezi serverem a prohlížečem. Tento formát je kompaktnější a jednodušší ve srovnání s XML, proto se nyní používá mnohem častěji.

Zkratka JSON znamená JavaScript Object Notation. Faktem je, že JSON byl původně vytvořen v jazyce JavaScript, ale nyní se používá všude.

Z pohledu PHP jsou data ve formátu JSON reprezentována jako řetězec:

php<?php
  $str = '
    // zde bude JSON
  ';
?>

Samotný formát představuje určitou vícerozměrnou strukturu, složenou z obyčejných a asociativních polí. Prvky polí mohou být řetězce povinně v dvojitých uvozovkách, čísla, hodnoty true, false nebo null.

Podívejme se na příklady. Vytvořme pole s čísly:

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

Vytvořme pole s řetězci:

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

Vytvořme pole se smíšeným obsahem:

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

Nyní vytvořme asociativní pole. V terminologii JavaScriptu se taková pole nazývají objekty. Objekty se uzavírají do složených závorek, a klíče se oddělují od hodnot dvojtečkami. Přičemž klíče takových polí musí být řetězce povinně v dvojitých uvozovkách. Vytvořme příklad objektu:

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

Můžeme kombinovat pole a objekty ve strukturách jakékoli úrovně vnoření:

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

Mějte na paměti, že visící čárky za posledním prvkem ve formátu JSON nejsou povoleny:

php<?php
  $str = '[
    "a",
    "b", 
    "c",
  ]'; // poslední čárka je nadbytečná
?>
Задание 1

Přetvořte následující strukturu PHP na řetězec JSON:

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

Přetvořte následující strukturu PHP na řetězec JSON:

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

Přetvořte následující strukturu PHP na řetězec JSON:

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

Přetvořte následující strukturu PHP na řetězec JSON:

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