JSON-kodning og -afkodning
Konvertér PHP-arrays til JSON, og fortolk JSON-svar med json_encode/json_decode.
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?
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
- JSON-kodning og -afkodning
- HTTP-forespørgsler med cURL
- Håndtering af API-svar og fejl
- Opbygning af en enkel API-klient