PHP:
Arbeiten mit JSON

Wie funktioniert es:

Mit JSON in PHP zu arbeiten, ist dank der integrierten Funktionen json_encode() und json_decode() unkompliziert. Unten sind Beispiele dargestellt, die zeigen, wie man ein PHP-Array in einen JSON-String umwandelt und umgekehrt:

Kodierung eines PHP-Arrays in einen JSON-String

// Definiere ein assoziatives Array
$data = [
    "name" => "John Doe",
    "age" => 30,
    "email" => "[email protected]"
];

// Konvertiere das PHP-Array in einen JSON-String
$jsonString = json_encode($data);

// Ausgabe des JSON-Strings
echo $jsonString;

Beispielausgabe:

{"name":"John Doe","age":30,"email":"[email protected]"}

Dekodierung eines JSON-Strings in ein PHP-Array

// JSON-String
$jsonString = '{"name":"John Doe","age":30,"email":"[email protected]"}';

// Konvertiere den JSON-String in ein PHP-Array
$data = json_decode($jsonString, true);

// Ausgabe des PHP-Arrays
print_r($data);

Beispielausgabe:

Array
(
    [name] => John Doe
    [age] => 30
    [email] => [email protected]
)

Arbeit mit einer Drittanbieter-Bibliothek: GuzzleHttp

Für komplexe JSON- und Webanfragen ist eine beliebte PHP-Bibliothek GuzzleHttp. Sie vereinfacht HTTP-Anfragen und arbeitet problemlos mit JSON-Daten.

Installation via Composer:

composer require guzzlehttp/guzzle

Beispielanfrage:

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();

// Sende eine Anfrage an eine API, die JSON zurückgibt
$response = $client->request('GET', 'https://api.example.com/data', [
    'headers' => [
        'Accept' => 'application/json',
    ],
]);

// Dekodiere die JSON-Antwort in ein PHP-Array
$data = json_decode($response->getBody(), true);

// Ausgabe der Daten
print_r($data);

Angenommen, die API gibt ähnliche JSON-Daten zurück:

Array
(
    [name] => John Doe
    [age] => 30
    [email] => [email protected]
)

Dies zeigt die Einfachheit der Verwendung von PHP für die JSON-Manipulation, sowohl mit nativen Funktionen als auch mit robusten Bibliotheken wie GuzzleHttp für komplexere Aufgaben.