JSON formatas PHP

JSON yra duomenų saugojimo formatas. Šis formatas dažnai naudojamas duomenims keistis tarp svetainių arba tarp serverio ir naršyklės. Šis formatas yra kompaktiškesnis ir paprastesnis palyginti su XML, todėl šiuo metu naudojamas daug plačiau.

Santrumpa JSON reiškia JavaScript Object Notation. Faktas yra tas, kad iš pradžių JSON buvo sukurtas JavaScript kalboje, bet dabar naudojamas visur.

Iš PHP pusės duomenys JSON formate atstovaujami kaip eilutė:

php<?php
  $str = '
    // čia bus JSON
  ';
?>

Pats formatas yra tam tikra daugiamatė struktūra, susidedanti iš įprastų ir asociatyvių masyvų. Masyvų elementai gali būti eilutės būtinai dvigubose kabutėse, skaičiai, reikšmės true, false arba null.

Pažiūrėkime pavyzdžiais. Sukurkime masyvą su skaičiais:

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

Sukurkime masyvą su eilutėmis:

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

Sukurkime masyvą su mišriu turiniu:

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

Dabar sukurkime asociatyvų masyvą. JavaScript terminologijoje tokie masyvai vadinami objektais. Objektai yra rašomi riestiniuose skliaustuose, o raktai atskiriami nuo reikšmių dvitaškiais. Tokių masyvų raktai turi būti eilutės būtinai dvigubose kabutėse. Sukurkime objekto pavyzdį:

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

Galima derinti masyvus ir objektus bet kokio gilumo struktūrose:

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

Turėkite omenyje, kad kabliataškiai po paskutinio elemento JSON formate yra neleistini:

php<?php
  $str = '[
    "a",
    "b", 
    "c",
  ]'; // paskutinis kablelis yra perteklinis
?>
Задание 1

Paverskite šią PHP struktūrą į JSON eilutę:

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

Paverskite šią PHP struktūrą į JSON eilutę:

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

Paverskite šią PHP struktūrą į JSON eilutę:

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

Paverskite šią PHP struktūrą į JSON eilutę:

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