Jeśli trafiłeś tutaj, pewnie zastanawiasz się, jak odczytać pliki JSON w PHP, prawda? Bez obaw – to wcale nie jest trudne! JSON (JavaScript Object Notation) to jeden z najpopularniejszych formatów do przechowywania i wymiany danych, głównie dlatego, że jest łatwy do odczytania przez ludzi i maszyny. W tym artykule pokażę Ci krok po kroku, jak radzić sobie z JSON-em w PHP, nawet jeśli dopiero zaczynasz swoją przygodę z programowaniem.
Co to jest JSON i dlaczego warto go używać?
JSON to format tekstowy, który przypomina strukturę obiektów w JavaScript. Wygląda mniej więcej tak:
{ "imie": "Jan", "wiek": 25, "zainteresowania": ["programowanie", "muzyka", "sport"] }
Dzięki prostocie i wszechstronności JSON stał się standardem do przesyłania danych między aplikacjami (na przykład między frontendem a backendem). PHP ma wbudowane funkcje, które pozwalają na łatwą obsługę plików JSON. Czas to wykorzystać!
Krok 1: Przygotowanie pliku JSON
Najpierw musimy mieć jakiś plik JSON, który chcemy odczytać. Załóżmy, że masz plik o nazwie dane.json
z następującą zawartością:
{ "uzytkownicy": [ { "id": 1, "imie": "Anna", "wiek": 30 }, { "id": 2, "imie": "Piotr", "wiek": 25 } ] }
Ten plik zawiera listę użytkowników z ich podstawowymi danymi.
Krok 2: Jak odczytać plik JSON w PHP?
W PHP możemy odczytać plik JSON za pomocą dwóch prostych kroków:
- Wczytanie zawartości pliku do zmiennej za pomocą funkcji
file_get_contents()
. - Konwersja JSON-a na tablicę PHP za pomocą funkcji
json_decode()
.
Oto kod:
<?php // 1. Wczytaj zawartość pliku JSON $sciezkaDoPliku = 'dane.json'; $jsonDane = file_get_contents($sciezkaDoPliku); // 2. Konwertuj JSON na tablicę PHP $dane = json_decode($jsonDane, true); // Użycie true zwraca tablicę asocjacyjną // Sprawdź wynik echo '<pre>'; print_r($dane); echo '</pre>'; ?>
Co się tutaj dzieje?
file_get_contents
: Wczytuje cały plik jako ciąg znaków (string).json_decode
: Tłumaczy string JSON na strukturę danych w PHP. Jeśli podasztrue
jako drugi argument, JSON zostanie zamieniony na tablicę asocjacyjną. Jeśli pominiesz ten argument, otrzymasz obiekt PHP.
Krok 3: Jak odczytać konkretne dane?
Załóżmy, że chcesz wydobyć tylko imiona użytkowników. Możesz to zrobić tak:
<?php // Wczytaj JSON $jsonDane = file_get_contents('dane.json'); $dane = json_decode($jsonDane, true); // Iteracja po użytkownikach foreach ($dane['uzytkownicy'] as $uzytkownik) { echo "Imię: " . $uzytkownik['imie'] . "<br>"; } ?>
Wynik na stronie będzie wyglądać tak:
Imię: Anna Imię: Piotr
Krok 4: Obsługa błędów
Nie zawsze wszystko pójdzie gładko. Co, jeśli plik JSON jest uszkodzony albo nie istnieje? Warto dodać obsługę błędów. Oto przykład:
<?php // Sprawdź, czy plik istnieje $sciezkaDoPliku = 'dane.json'; if (!file_exists($sciezkaDoPliku)) { die('Błąd: Plik nie istnieje!'); } // Wczytaj zawartość pliku JSON $jsonDane = file_get_contents($sciezkaDoPliku); // Spróbuj zdekodować JSON $dane = json_decode($jsonDane, true); if (json_last_error() !== JSON_ERROR_NONE) { die('Błąd w pliku JSON: ' . json_last_error_msg()); } // Wyświetl dane, jeśli wszystko poszło dobrze echo '<pre>'; print_r($dane); echo '</pre>'; ?>
Tutaj dodaliśmy:
file_exists
: Sprawdza, czy plik faktycznie istnieje.json_last_error
ijson_last_error_msg
: Informują, czy JSON został poprawnie zdekodowany.
Krok 5: Tworzenie własnych plików JSON
Co, jeśli chcesz stworzyć plik JSON w PHP? Żaden problem! Użyj funkcji json_encode
.
Przykład:
<?php // Tworzenie tablicy PHP $dane = [ 'produkty' => [ ['nazwa' => 'Laptop', 'cena' => 3000], ['nazwa' => 'Smartfon', 'cena' => 1500], ] ]; // Konwertuj tablicę na JSON $jsonDane = json_encode($dane, JSON_PRETTY_PRINT); // Zapisz do pliku file_put_contents('produkty.json', $jsonDane); echo "Plik JSON został zapisany!"; ?>
Tutaj:
json_encode
: Zamienia tablicę PHP na JSON.file_put_contents
: Zapisuje dane do pliku.JSON_PRETTY_PRINT
: Opcjonalny argument, który formatuje JSON w czytelny sposób.
Krok 6: Zaawansowane manipulacje JSON-em
Czasem JSON może być bardziej skomplikowany. Co, jeśli chcesz dodać nowego użytkownika do istniejącego pliku JSON? Oto jak to zrobić:
<?php // Wczytaj istniejący plik JSON $jsonDane = file_get_contents('dane.json'); $dane = json_decode($jsonDane, true); // Dodaj nowego użytkownika $dane['uzytkownicy'][] = [ 'id' => 3, 'imie' => 'Kasia', 'wiek' => 22 ]; // Zapisz zmiany do pliku file_put_contents('dane.json', json_encode($dane, JSON_PRETTY_PRINT)); echo "Dodano nowego użytkownika!"; ?>
Podsumowanie
Teraz wiesz, jak:
- Odczytywać pliki JSON w PHP.
- Obsługiwać błędy podczas pracy z JSON-em.
- Tworzyć i manipulować plikami JSON.
JSON to potężne narzędzie, które otwiera wiele drzwi w programowaniu, zwłaszcza w aplikacjach webowych.