PHP Academy · Lektion

JSON-kodning og -afkodning

Konvertér PHP-arrays til JSON, og fortolk JSON-svar med json_encode/json_decode.

Lektion 1 af 413 trin

JSON-kodning og -afkodning er en gratis PHP Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i PHP Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. PHP Academy-kurset indeholder 4 lektioner i alt.

Hvad er JSON?

JSON (JavaScript Object Notation) er et letvægtsdataformat, der bruges til API-kommunikation og konfigurationsfiler. PHP har indbyggede funktioner til at kode og afkode det.

json_encode()

Konverterer en PHP-værdi (array, objekt, skalar) til en JSON-streng.

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

json_decode()

Fortolker en JSON-streng og returnerer en PHP-værdi. Som standard returneres stdClass-objekter; send true som det andet argument for associative arrays.

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

Formatering af JSON

Brug flaget JSON_PRETTY_PRINT til at formatere resultatet, så det er let at læse for mennesker.

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

Nyttige flag til json_encode

Almindelige flag: JSON_UNESCAPED_UNICODE (bevar UTF-8, som det er), JSON_UNESCAPED_SLASHES (ingen omvendt skråstreg før /), JSON_THROW_ON_ERROR (kaster en undtagelse ved fejl).

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

Fejlhåndtering

Kontrollér json_last_error() efter kodning eller afkodning, eller brug JSON_THROW_ON_ERROR for automatisk at få en undtagelse.

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

Kodning af objekter

Objekter kodes som JSON-objekter. Som standard medtages kun offentlige egenskaber. Implementér JsonSerializable for at styre 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}

Indlejrede strukturer

JSON understøtter indlejring. Dybt indlejrede PHP-arrays kodes problemfrit til indlejrede JSON-objekter og -arrays.

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

Afkodningsdybde

Den tredje parameter i json_decode angiver den maksimale rekursionsdybde (som standard 512). Meget dyb JSON kan kræve en højere grænse.

JSON_NUMERIC_CHECK

Flaget JSON_NUMERIC_CHECK konverterer numeriske strenge til tal under kodningen. Brug det med omtanke — det kan ødelægge telefonnumre.

Streaming af stor JSON

Brug et bibliotek til løbende fortolkning af JSON-filer, der er meget store (f.eks. halaxa/json-machine), i stedet for at indlæse hele filen med json_decode.

Opsummering

json_encode konverterer PHP-værdier til JSON-strenge. json_decode fortolker JSON. Brug JSON_THROW_ON_ERROR til sikker fejlhåndtering.

Hurtigt tjek

Hvordan får du et associativt array fra json_decode?

Gratis at komme i gang

Lær PHP med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
49
Lektioner
195

Ofte stillede spørgsmål

Er lektionen “JSON-kodning og -afkodning” gratis?

Ja — hele teksten til “JSON-kodning og -afkodning” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af PHP Academy-kurset, skal du opgradere til CoddyKit PRO. PHP Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “JSON-kodning og -afkodning”?

Konvertér PHP-arrays til JSON, og fortolk JSON-svar med json_encode/json_decode. Du øver dig i PHP Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på PHP Academy?

Der kræves ingen tidligere erfaring. PHP Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “JSON-kodning og -afkodning”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne PHP Academy-lektion?

Ja. Alle PHP Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. JSON-kodning og -afkodning
  2. HTTP-forespørgsler med cURL
  3. Håndtering af API-svar og fejl
  4. Opbygning af en enkel API-klient
← Tilbage til PHP Academy