PHP Academy · Oppitunti

JSON:n koodaus ja purku

Muuntaa PHP-taulukoita JSON-muotoon ja jäsentäkää JSON-vastauksia json_encode/json_decode-funktioilla.

Oppitunti 1/413 vaihetta

JSON:n koodaus ja purku on ilmainen PHP Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu PHP Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. PHP Academy-kurssilla on yhteensä 4 oppituntia.

Mikä on JSON?

JSON (JavaScript Object Notation) on kevyt tietomuoto, jota käytetään API-viestintään ja asetustiedostoihin. PHP:ssä on sen koodaamiseen ja purkamiseen valmiit funktiot.

json_encode()

Muuntaa PHP-arvon (taulukon, objektin tai skalaarin) JSON-merkkijonoksi.

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

json_decode()

Jäsentää JSON-merkkijonon ja palauttaa PHP-arvon. Oletusarvoisesti se palauttaa stdClass-objekteja; välittäkää toisena argumenttina true, jos haluatte assosiatiivisia taulukoita.

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

JSON:n muotoiltu tulostus

Muotoile tuloste ihmisen luettavaksi JSON_PRETTY_PRINT-lipulla.

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

Hyödylliset json_encode-liput

Yleisiä lippuja ovat JSON_UNESCAPED_UNICODE (säilyttää UTF-8-merkit sellaisinaan), JSON_UNESCAPED_SLASHES (ei kenoviivaa merkin / eteen) ja JSON_THROW_ON_ERROR (heittää poikkeuksen virheen sattuessa).

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

Virheenkäsittely

Tarkista json_last_error() koodauksen tai purkamisen jälkeen tai käytä JSON_THROW_ON_ERROR-lippua, jolloin poikkeus heitetään automaattisesti.

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

Olioiden koodaus

Oliot koodataan JSON-olioiksi. Oletusarvoisesti mukaan otetaan vain julkiset ominaisuudet. Toteuta JsonSerializable, jos haluat hallita serialisointia.

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

Sisäkkäiset rakenteet

JSON tukee sisäkkäisiä rakenteita. Syvälle sisäkkäiset PHP-taulukot koodataan saumattomasti sisäkkäisiksi JSON-olioiksi ja -taulukoiksi.

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

Purkamisen syvyys

json_decode-funktion kolmas parametri määrittää rekursion enimmäissyvyyden (oletusarvo on 512). Erittäin syvä JSON voi vaatia suuremman raja-arvon.

JSON_NUMERIC_CHECK

JSON_NUMERIC_CHECK-lippu muuntaa numeeriset merkkijonot luvuiksi koodauksen aikana. Käyttäkää sitä harkiten, sillä se voi rikkoa puhelinnumerot.

Suuren JSON:n käsittely suoratoistona

Käyttäkää erittäin suurille JSON-tiedostoille suoratoistoon tarkoitettua jäsenninkirjastoa, kuten halaxa/json-machine, sen sijaan että lataisitte koko tiedoston json_decode-funktiolla.

Yhteenveto

json_encode muuntaa PHP-arvot JSON-merkkijonoiksi. json_decode jäsentää JSON:n. Käyttäkää JSON_THROW_ON_ERROR-lippua turvalliseen virheenkäsittelyyn.

Pikatarkistus

Miten json_decode-funktiolla saadaan assosiatiivinen taulukko?

Aloita maksutta

Opi PHP tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
49
Oppitunnit
195

Usein kysytyt kysymykset

Onko oppitunti ”JSON:n koodaus ja purku” ilmainen?

Kyllä – oppitunnin ”JSON:n koodaus ja purku” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko PHP Academy-kurssin, päivitä CoddyKit PROhon. PHP Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”JSON:n koodaus ja purku”?

Muuntaa PHP-taulukoita JSON-muotoon ja jäsentäkää JSON-vastauksia json_encode/json_decode-funktioilla. Harjoittelet PHP Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni PHP Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin PHP Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”JSON:n koodaus ja purku”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä PHP Academy-oppitunnilla?

Kyllä. Jokainen PHP Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. JSON:n koodaus ja purku
  2. HTTP-pyyntöjen tekeminen cURL:lla
  3. API-vastausten ja virheiden käsittely
  4. Yksinkertaisen API-asiakasohjelman rakentaminen
← Takaisin: PHP Academy