JSON-muoto PHP:ssä

JSON on tiedon tallennusmuoto. Tätä muotoa käytetään usein tiedon vaihtamiseen sivustojen välillä tai palvelimen ja selaimen välillä. Tämä muoto on kompaktimpi ja yksinkertaisempi verrattuna XML:ään, siksi sitä käytetään nykyisin paljon laajemmin.

Lyhenne JSON tulee sanoista JavaScript Object Notation. Asia on niin, että JSON keksittiin alun perin JavaScript-kielellä, mutta nykyisin sitä käytetään kaikkialla.

PHP:n näkökulmasta JSON-muotoiset tiedot edustavat merkkijonoa:

php<?php
  $str = '
    // tässä on JSON
  ';
?>

Itse muoto edustaa jotakin moniulotteista rakennetta, joka koostuu tavallisista ja assosiatiivisista taulukoista. Taulukoiden alkioina voivat olla merkkijonot pakollisesti lainausmerkeissä, numerot, arvot true, false tai null.

Katsotaan esimerkein. Tehdään taulukko numeroilla:

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

Tehdään taulukko merkkijonoilla:

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

Tehdään taulukko sekasisältöisellä sisällöllä:

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

Tehdään nyt assosiatiivinen taulukko. JavaScriptin termein tällaisia taulukoita kutsutaan objekteiksi. Objektit suljetaan aaltosulkeisiin, ja avaimet erotetaan arvoista kaksoispisteillä. Samalla tällaisten taulukoiden avaimina täytyy olla merkkijonoja pakollisesti lainausmerkeissä. Tehdään esimerkki objektista:

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

Taulukoita ja objekteja voidaan yhdistellä rakenteissa minkä tahansa sisäkkäisyystason:

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

Huomioi, että viimeisen alkion jälkeiset roikkuvat pilkut eivät ole sallittuja JSON-muodossa:

php<?php
  $str = '[
    "a",
    "b", 
    "c",
  ]'; // viimeinen pilkku on ylimääräinen
?>
Задание 1

Muunna seuraava PHP-rakenne JSON-merkkijonoksi:

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

Muunna seuraava PHP-rakenne JSON-merkkijonoksi:

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

Muunna seuraava PHP-rakenne JSON-merkkijonoksi:

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

Muunna seuraava PHP-rakenne JSON-merkkijonoksi:

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