Formát JSON v PHP

JSON je formát na ukladanie údajov. Tento formát sa často používa na výmenu údajov medzi webmi, alebo medzi serverom a prehliadačom. Tento formát je kompaktnejší a jednoduchší v porovnaní s XML, preto sa v súčasnosti používa oveľa častejšie.

Skratka JSON znamená JavaScript Object Notation. Funguje to tak, že pôvodne bol JSON vymyslený v jazyku JavaScript, ale teraz sa používa všade.

Z pohľadu PHP sú údaje vo formáte JSON reťazec:

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

Samotný formát predstavuje určitú viacrozmernú štruktúru, pozostávajúcu z obyčajných a asociatívnych polí. Prvkami polí môžu byť reťazce povinne v dvojitých úvodzkovkách, čísla, hodnoty true, false alebo null.

Pozrime sa na príklady. Vytvorme pole s číslami:

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

Vytvorme pole s reťazcami:

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

Vytvorme pole so zmiešaným obsahom:

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

Teraz vytvorme asociatívne pole. V terminológii JavaScriptu sa takéto polia nazývajú objekty. Objekty sú uzavreté do zložených zátvoriek, a kľúče sú oddelené od hodnôt dvojbodkami. Zároveň musia byť kľúčmi takýchto polí reťazce povinne v dvojitých úvodzkovkách. Urobme príklad objektu:

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

Polia a objekty je možné kombinovať v štruktúrach akejkoľvek úrovne vnorenia:

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

Majte na pamäti, že visiace čiarky za posledným prvkom vo formáte JSON sú neprípustné:

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

Preveďte nasledujúcu štruktúru PHP na reťazec JSON:

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

Preveďte nasledujúcu štruktúru PHP na reťazec JSON:

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

Preveďte nasledujúcu štruktúru PHP na reťazec JSON:

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

Preveďte nasledujúcu štruktúru PHP na reťazec JSON:

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