0Pricing
PHP Academy · Lekcja

Kodowanie i dekodowanie JSON

Konwertuj tablice PHP do JSON i analizuj odpowiedzi JSON za pomocą json_encode/json_decode

Kodowanie i dekodowanie JSON to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.

Czym jest JSON?

JSON (JavaScript Object Notation) to lekki format danych używany do komunikacji z API i przechowywania plików konfiguracyjnych. PHP ma wbudowane funkcje kodowania i dekodowania tego formatu.

json_encode()

Konwertuje wartość PHP (tablicę, obiekt lub skalar) na ciąg JSON.

<?php
$data   = ["name" => "Alice", "age" => 30, "active" => true];
$json   = json_encode($data);
echo $json; // {"name":"Alice","age":30,"active":true}

json_decode()

Analizuje ciąg JSON i zwraca wartość PHP. Domyślnie zwraca obiekty stdClass; przekaż true jako drugi argument, aby uzyskać tablice asocjacyjne.

<?php
$json = '{"name":"Alice","age":30}';
$obj  = json_decode($json);          // stdClass
$arr  = json_decode($json, true);    // associative array
echo $arr["name"]; // "Alice"

Formatowanie JSON

Należy użyć flagi JSON_PRETTY_PRINT, aby sformatować dane wyjściowe tak, by były czytelne dla człowieka.

<?php
$json = json_encode(["a" => 1, "b" => 2], JSON_PRETTY_PRINT);
echo $json;
// {
//     "a": 1,
//     "b": 2
// }

Przydatne flagi json_encode

Typowe flagi: JSON_UNESCAPED_UNICODE (zachowuje UTF-8 bez zmian), JSON_UNESCAPED_SLASHES (nie dodaje ukośnika odwrotnego przed /), JSON_THROW_ON_ERROR (zgłasza wyjątek w razie niepowodzenia).

<?php
$json = json_encode(["url" => "https://example.com/path"],
    JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

Obsługa błędów

Po kodowaniu lub dekodowaniu należy sprawdzić json_last_error() albo użyć JSON_THROW_ON_ERROR, aby automatycznie otrzymać wyjątek.

<?php
try {
    $data = json_decode($input, true, 512, JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
    echo "Invalid JSON: ".$e->getMessage();
}

Kodowanie obiektów

Obiekty są kodowane jako obiekty JSON. Domyślnie uwzględniane są tylko właściwości publiczne. Należy zaimplementować JsonSerializable, aby kontrolować serializację.

<?php
class Point implements \JsonSerializable {
    public function __construct(
        private float $x, private float $y
    ) {}
    public function jsonSerialize(): mixed {
        return ["x" => $this->x, "y" => $this->y];
    }
}
echo json_encode(new Point(1.0, 2.5)); // {"x":1,"y":2.5}

Struktury zagnieżdżone

JSON obsługuje zagnieżdżanie. Głęboko zagnieżdżone tablice PHP są bezproblemowo kodowane do zagnieżdżonych obiektów i tablic JSON.

<?php
$order = [
    "id"    => 1,
    "items" => [
        ["sku" => "A1", "qty" => 2],
        ["sku" => "B3", "qty" => 1],
    ],
];
echo json_encode($order, JSON_PRETTY_PRINT);

Głębokość dekodowania

Trzeci parametr funkcji json_decode określa maksymalną głębokość rekurencji (domyślnie 512). Bardzo głęboki JSON może wymagać zwiększenia tego limitu.

JSON_NUMERIC_CHECK

Flaga JSON_NUMERIC_CHECK konwertuje ciągi znaków zawierające liczby na liczby podczas kodowania. Należy używać jej ostrożnie — może uszkodzić numery telefonów.

Strumieniowe przetwarzanie dużego JSON-a

W przypadku bardzo dużych plików JSON należy użyć biblioteki do parsowania strumieniowego (np. halaxa/json-machine) zamiast wczytywać cały plik za pomocą json_decode.

Podsumowanie

json_encode konwertuje wartości PHP na ciągi JSON. json_decode analizuje JSON. Aby bezpiecznie obsługiwać błędy, należy użyć JSON_THROW_ON_ERROR.

Szybkie sprawdzenie

Jak uzyskać tablicę asocjacyjną za pomocą json_decode?

Często zadawane pytania

Czy lekcja „Kodowanie i dekodowanie JSON” jest bezpłatna?

Tak — pełny tekst „Kodowanie i dekodowanie JSON” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Kodowanie i dekodowanie JSON”?

Konwertuj tablice PHP do JSON i analizuj odpowiedzi JSON za pomocą json_encode/json_decode Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PHP Academy?

Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Kodowanie i dekodowanie JSON”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?

Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Kodowanie i dekodowanie JSON
  2. Wysyłanie żądań HTTP za pomocą cURL
  3. Obsługa odpowiedzi i błędów API
  4. Budowanie prostego klienta API
← Powrót do PHP Academy