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
- Kodowanie i dekodowanie JSON
- Wysyłanie żądań HTTP za pomocą cURL
- Obsługa odpowiedzi i błędów API
- Budowanie prostego klienta API