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 podasztruejako 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_errorijson_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.