
Autor: 30.03.2023
PHP - do czego służy funkcja json_encode()
PHP to język, którego głównym zastosowaniem jest pisanie aplikacji internetowych. W takich aplikacjach ważną rolę pełnią dane w formacie JSON. PHP posiada wbudowane funkcje, które mają ułatwić pracę z takimi danymi - przyjrzymy się im bliżej w tym artykule.
PHP Developer
Zdobądź umiejętności niezbędne do pracy jako PHP Developer. Ta ścieżka kariery sprawi, że staniesz się pełnoprawnym kandydatem na PHP Developera. Ścieżka zawiera dziesiątki zadań, ćwiczeń oraz projektów, które nauczą cię realnych, przydatnych na rynku pracy umiejętności. Dowiedz się więcej
Co to jest JSON?
Zacznijmy od rzeczy podstawowej: czym jest JSON? Jest to format do wymiany danych, bardzo często używany w aplikacjach internetowych. Jego nazwa to skrót od JavaScript Object Notation. Nie sugeruj się językiem JavaScript w nazwie - JSON to uniwersalny format, który może być obsługiwany przez wiele języków programowania.
Dzięki JSON różne aplikacje mogą się ze sobą “dogadać” i wymieniać między sobą dowolne dane. Dlatego wiele języków posiada wbudowane funkcje do pracy z tym formatem danych. Stąd też mamy w PHP interesującą nas funkcję, czyli json_encode().
Scenariusz użycia json_encode()
Wyobraź sobie, że w twojej aplikacji dane mają być wyprowadzane w formacie JSON - po to, aby inna aplikacja mogła je odczytać. Mamy taką prostą tablicę asocjacyjną, która zawiera kilka wartości:
<?php
$vals = array('a' => 1, 'b' => 2, 'c' => 3);
?>
Naszym zadaniem jest wyprowadzenie tej tablicy w formie JSON. Możemy to zrobić tak:
<?php
$vals = array('a' => 1, 'b' => 2, 'c' => 3);
echo json_encode($vals);
?>
Użyliśmy json_encode() po to, aby wartości z naszej tablicy wyprowadzić w formie JSON. Efekt wygląda tak:
{"a":1,"b":2,"c":3}
Mamy tu wszystkie elementy prawidłowego JSON: nawias klamrowy, klucze zdefiniowane w cudzysłowie oraz wartości po dwukropku. Takie dane mogą być bez problemu odczytane przez inną aplikację. Na tym polega cała idea użycia uniwersalnego formatu, jakim jest JSON.
PHP Developer
Zdobądź umiejętności niezbędne do pracy jako PHP Developer. Ta ścieżka kariery sprawi, że staniesz się pełnoprawnym kandydatem na PHP Developera. Ścieżka zawiera dziesiątki zadań, ćwiczeń oraz projektów, które nauczą cię realnych, przydatnych na rynku pracy umiejętności. Dowiedz się więcej
W drugą stronę - json_decode()
Opisaną powyżej operacją da się też wykonać w drugą stronę. Chodzi o sytuację, w której dane w formie JSON chcemy zamienić na tablicę asocjacyjną albo obiekt PHP. Możemy w tym celu użyć wbudowanej funkcji json_decode(). Oto przykład:
<?php
$json = '{"a":1,"b":2,"c":3}';
print_r(json_decode($json));
?>
Mamy string, który zawiera JSON - to zmienna o nazwie $json. Za pomocą funkcji json_decode() zamieniamy go na obiekt. Tak wygląda wynik:
stdClass Object
(
[a] => 1
[b] => 2
[c] => 3
)
Otrzymaliśmy prosty obiekt, który zawiera klucze oraz wartości. Możemy też nasz string zamienić na tablicę asocjacyjną:
print_r(json_decode($json, true));
W tym celu używamy dodatkowego parametru z wartością true. Efektem będzie tablica asocjacyjna:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
Takie dane możemy teraz łatwo przetwarzać w naszej aplikacji PHP.
Podsumowanie
Za pomocą dwóch opisanych powyżej funkcji, czyli json_encode() oraz json_decode() możesz łatwo pracować z danymi JSON. Konwertowanie np. z tablicy do JSON nie sprawia żadnego problemu. Podobnie jest z operacją odwrotną czyli z JSON do obiektu albo tablicy.