Odczytywanie plików JSON przy pomocy PHP

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:

  1. Wczytanie zawartości pliku do zmiennej za pomocą funkcji file_get_contents().
  2. 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 podasz true 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 i json_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.

Szukasz taniego i dobrego hostingu dla swojej strony www? - Sprawdź Seohost.pl