PHP Academy · Lektion

Koda och avkoda JSON

Konvertera PHP-arrayer till JSON och tolka JSON-svar med json_encode/json_decode.

Lektion 1 av 413 steg

Koda och avkoda JSON är en gratis lektion i PHP Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för PHP Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i PHP Academy innehåller totalt 4 lektioner.

Vad är JSON?

JSON (JavaScript Object Notation) är ett lättviktigt dataformat som används för API-kommunikation och konfigurationsfiler. PHP har inbyggda funktioner för att koda och avkoda det.

json_encode()

Konverterar ett PHP-värde (array, objekt eller skalär) till en JSON-sträng.

<?php
$data   = ["name" => "Alice", "age" => 30, "active" => true];
$json   = json_encode($data);
echo $json; // {"name":"Alice","age":30,"active":true}

json_decode()

Analyserar en JSON-sträng och returnerar ett PHP-värde. Som standard returneras stdClass-objekt; skicka in true som det andra argumentet för associativa arrayer.

<?php
$json = '{"name":"Alice","age":30}';
$obj  = json_decode($json);          // stdClass
$arr  = json_decode($json, true);    // associative array
echo $arr["name"]; // "Alice"

Formatering av JSON

Använd flaggan JSON_PRETTY_PRINT för att formatera utdata så att den blir lättläst för människor.

<?php
$json = json_encode(["a" => 1, "b" => 2], JSON_PRETTY_PRINT);
echo $json;
// {
//     "a": 1,
//     "b": 2
// }

Användbara json_encode-flaggor

Vanliga flaggor: JSON_UNESCAPED_UNICODE (behåller UTF-8 som det är), JSON_UNESCAPED_SLASHES (inget omvänt snedstreck före /) och JSON_THROW_ON_ERROR (kastar ett undantag vid fel).

<?php
$json = json_encode(["url" => "https://example.com/path"],
    JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

Felhantering

Kontrollera json_last_error() efter kodning eller avkodning, eller använd JSON_THROW_ON_ERROR för att automatiskt få ett undantag.

<?php
try {
    $data = json_decode($input, true, 512, JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
    echo "Invalid JSON: ".$e->getMessage();
}

Kodning av objekt

Objekt kodas som JSON-objekt. Som standard inkluderas endast offentliga egenskaper. Implementera JsonSerializable för att styra serialiseringen.

<?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}

Kapslade strukturer

JSON stöder kapsling. Djupt kapslade PHP-arrayer kodas utan extra arbete till kapslade JSON-objekt och arrayer.

<?php
$order = [
    "id"    => 1,
    "items" => [
        ["sku" => "A1", "qty" => 2],
        ["sku" => "B3", "qty" => 1],
    ],
];
echo json_encode($order, JSON_PRETTY_PRINT);

Avkodningsdjup

Den tredje parametern i json_decode anger det maximala rekursionsdjupet (standardvärde 512). Mycket djupt JSON kan kräva en högre gräns.

JSON_NUMERIC_CHECK

Flaggan JSON_NUMERIC_CHECK konverterar numeriska strängar till tal under kodningen. Använd den med försiktighet — den kan förstöra telefonnummer.

Strömmande hantering av stora JSON-filer

För mycket stora JSON-filer bör Ni använda ett bibliotek för strömmande tolkning, till exempel halaxa/json-machine, i stället för att läsa in hela filen med json_decode.

Sammanfattning

json_encode konverterar PHP-värden till JSON-strängar. json_decode tolkar JSON. Använd JSON_THROW_ON_ERROR för säker felhantering.

Snabb kontroll

Hur får Ni en associativ array från json_decode?

Gratis att börja

Lär dig PHP med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
49
Lektioner
195

Vanliga frågor

Är lektionen ”Koda och avkoda JSON” gratis?

Ja – hela texten till ”Koda och avkoda JSON” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i PHP Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i PHP Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Koda och avkoda JSON”?

Konvertera PHP-arrayer till JSON och tolka JSON-svar med json_encode/json_decode. Ni övar på PHP Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig PHP Academy?

Du behöver inga förkunskaper. Utbildningen i PHP Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Koda och avkoda JSON”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här PHP Academy-lektionen?

Ja. Varje PHP Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Koda och avkoda JSON
  2. Skicka HTTP-förfrågningar med cURL
  3. Hantera API-svar och fel
  4. Bygga en enkel API-klient
← Tillbaka till PHP Academy