Postingan lainnya
Parsing Json di PHP
saya punya sebuah method, yang me-return sebuah json
$x = Halo();
Isi dari $x adalah
{
"data": {
"status": 400,
"message": "data kosong"
}
}
bagaimana cara agar saya bisa mendapatkan / meng-echo "400" ?
sudah coba yang ini, tapi tidak work.
echo $x["data"]["status"];
// Fatal error: Uncaught TypeError: Cannot access offset of type string on string
5 Jawaban:
<div>setelah saya var_dump(), ternyata isi dari $x berformat string, bukan json/array</div><pre>var_dump($x);
// string(79) "{ "data": { "status": 400, "message": "data kosong" } }"</pre><div><br>kenapa bisa menjadi string ya? padahal didalam method halo( ), sudah saya kasih return berupa json.</div><pre>function halo() { <strong>return</strong> json_encode(["data" <strong>=></strong> ["status" <strong>=></strong> 400, "message" <strong>=></strong> "data kosong"]], JSON_PRETTY_PRINT); }</pre>
<div>Coba cek <a href="https://www.php.net/manual/en/function.json-encode.php">dokumentasi php json_encode</a><br><br>"json_encode — <strong>Returns a string</strong> containing the JSON representation of the supplied <strong>value</strong>. I"<br>- mengembalikan sebuah string</div>
<div>Kalau anda ingin parsing JSON string yang didapatkan dari app lain/web service/rest API, anda harus menggunakan json_decode untuk mengubahnya kembali menjadi array PHP.<br>Jadi kodingnya diubah seperti ini:</div><pre>$x = json_decode(Halo(), true);</pre>
<div>karna json(JavaScript Object Notation) itu merupakan data string bukan array ataupun object, json biasanya digunakan untuk komunikasi melalui API, jika ingin memanipulasi data json, sebaiknya di jadikan array saja</div>
<div>Pake json decode</div><pre><?php $x = json_decode(Halo()); echo$x['data']['status'];?> <br></pre><div><br></div>