PHP Academy · leksjon

JSON-koding og -dekoding

Konverter PHP-matriser til JSON og analyser JSON-svar med json_encode/json_decode.

Leksjon 1 av 413 trinn

JSON-koding og -dekoding er en gratis leksjon i PHP Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i PHP Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i PHP Academy inneholder totalt 4 leksjoner.

Hva er JSON?

JSON (JavaScript Object Notation) er et lettvektsdataformat som brukes til API-kommunikasjon og konfigurasjonsfiler. PHP har innebygde funksjoner for å kode og dekode det.

json_encode()

Konverterer en PHP-verdi (matrise, objekt eller 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()

Analyserer en JSON-streng og returnerer en PHP-verdi. Som standard returneres stdClass-objekter. Send inn true som det andre argumentet for assosiative matriser.

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

Penformatering av JSON

Bruk flagget JSON_PRETTY_PRINT for å formatere resultatet slik at det blir lett å lese for mennesker.

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

Nyttige json_encode-flagg

Vanlige flagg: JSON_UNESCAPED_UNICODE (beholder UTF-8 som det er), JSON_UNESCAPED_SLASHES (ingen omvendt skråstrek før /), JSON_THROW_ON_ERROR (kaster et unntak ved feil).

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

Feilhåndtering

Kontroller json_last_error() etter koding eller dekoding, eller bruk JSON_THROW_ON_ERROR for å få et unntak automatisk.

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

Koding av objekter

Objekter kodes som JSON-objekter. Som standard inkluderes bare offentlige egenskaper. Implementer JsonSerializable for å kontrollere 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}

Nøstede strukturer

JSON støtter nøsting. Dypt nøstede PHP-tabeller kodes sømløst til nøstede JSON-objekter og -tabeller.

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

Dekodingsdybde

Den tredje parameteren til json_decode angir maksimal rekursjonsdybde (512 som standard). Svært dypt nøstet JSON kan kreve en høyere grense.

JSON_NUMERIC_CHECK

Flagget JSON_NUMERIC_CHECK konverterer numeriske strenger til tall under koding. Bruk det med forsiktighet – det kan ødelegge telefonnumre.

Strømming av store JSON-filer

For svært store JSON-filer bør du bruke et bibliotek for strømmende parsing (for eksempel halaxa/json-machine) i stedet for å laste inn hele filen med json_decode.

Sammendrag

json_encode konverterer PHP-verdier til JSON-strenger. json_decode parser JSON. Bruk JSON_THROW_ON_ERROR for sikker feilhåndtering.

Hurtigsjekk

Hvordan får du en assosiativ tabell fra json_decode?

Gratis å komme i gang

Lær deg PHP med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
49
Leksjoner
195

Ofte stilte spørsmål

Er leksjonen «JSON-koding og -dekoding» gratis?

Ja – hele teksten i «JSON-koding og -dekoding» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av PHP Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i PHP Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «JSON-koding og -dekoding»?

Konverter PHP-matriser til JSON og analyser JSON-svar med json_encode/json_decode. Du øver på PHP Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med PHP Academy?

Ingen tidligere erfaring er nødvendig. PHP Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «JSON-koding og -dekoding»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne PHP Academy-leksjonen?

Ja. Alle PHP Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. JSON-koding og -dekoding
  2. Sende HTTP-forespørsler med cURL
  3. Håndtere API-svar og feil
  4. Bygge en enkel API-klient
← Tilbake til PHP Academy