JSON:n koodaus ja purku
Muuntaa PHP-taulukoita JSON-muotoon ja jäsentäkää JSON-vastauksia json_encode/json_decode-funktioilla.
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?
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
- JSON:n koodaus ja purku
- HTTP-pyyntöjen tekeminen cURL:lla
- API-vastausten ja virheiden käsittely
- Yksinkertaisen API-asiakasohjelman rakentaminen