Format JSON w PHP
JSON to format do przechowywania danych. Ten format jest często wykorzystywany do wymiany danych między stronami internetowymi lub między serwerem a przeglądarką. Ten format jest bardziej kompaktowy i prostszy w porównaniu z XML, dlatego obecnie jest używany znacznie częściej.
Skrót JSON rozwija się jako JavaScript Object Notation. Chodzi o to, że początkowo JSON został wymyślony w języku JavaScript, ale teraz jest używany powszechnie.
Z punktu widzenia PHP dane w formacie JSON reprezentowane są jako ciąg znaków:
<?php
$str = '
// tutaj będzie JSON
';
?>
Sam format reprezentuje pewną
strukturę wielowymiarową, składającą się
ze zwykłych tablic i tablic asocjacyjnych.
Elementami tablic mogą być ciągi znaków
obowiązkowo w podwójnych cudzysłowach, liczby,
wartości true, false
lub null.
Spójrzmy na przykłady. Stwórzmy tablicę z liczbami:
<?php
$str = '[1, 2, 3, 4, 5]';
?>
Stwórzmy tablicę z ciągami znaków:
<?php
$str = '["a", "b", "c"]';
?>
Stwórzmy tablicę z mieszaną zawartością:
<?php
$str = '[1, "a", true, false, null]';
?>
Stwórzmy teraz tablicę asocjacyjną. W terminologii JavaScript takie tablice nazywane są obiektami. Obiekty są ujęte w nawiasy klamrowe, a klucze oddzielone od wartości dwukropkami. Jednocześnie kluczami takich tablic muszą być ciągi znaków obowiązkowo w podwójnych cudzysłowach. Zróbmy przykład obiektu:
<?php
$str = '{
"a": 1,
"b": 2,
"c": 3
}';
?>
Można łączyć tablice i obiekty w strukturach dowolnego poziomu zagnieżdżenia:
<?php
$str = '{
"a": [1, 2, 3],
"b": [4, 5, 6]
}';
?>
Pamiętaj, że wiszące przecinki po ostatnim elemenci w formacie JSON są niedozwolone:
<?php
$str = '[
"a",
"b",
"c",
]'; // ostatni przecinek jest zbędny
?>
Przekształć następującą strukturę PHP na ciąg JSON:
<?php
$data = [1, 2, 3];
?>
Przekształć następującą strukturę PHP na ciąg JSON:
<?php
$data = ['x', 'y', 'z',];
?>
Przekształć następującą strukturę PHP na ciąg JSON:
<?php
$data = [
'x' => 'a',
'y' => 'b',
'z' => 'c',
];
?>
Przekształć następującą strukturę PHP na ciąg JSON:
<?php
$data = [
'ru' => ['1', '2', '3'],
'en' => ['a', 'b', 'c'],
];
?>