Koda och avkoda JSON
Konvertera PHP-arrayer till JSON och tolka JSON-svar med json_encode/json_decode.
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?
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
- Koda och avkoda JSON
- Skicka HTTP-förfrågningar med cURL
- Hantera API-svar och fel
- Bygga en enkel API-klient