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
avatar AhmadXD
@AhmadXD

13 Kontribusi 3 Poin

Diperbarui 1 tahun yang lalu

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>=&gt;</strong> ["status" <strong>=&gt;</strong> 400, "message" <strong>=&gt;</strong> "data kosong"]], JSON_PRETTY_PRINT); }</pre>

avatar AhmadXD
@AhmadXD

13 Kontribusi 3 Poin

Dipost 1 tahun yang lalu

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

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 1 tahun yang lalu

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

avatar danielwilianto
@danielwilianto

16 Kontribusi 17 Poin

Dipost 1 tahun yang lalu

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

avatar marilynbathory
@marilynbathory

61 Kontribusi 9 Poin

Dipost 1 tahun yang lalu

<div>Pake json decode</div><pre>&lt;?php $x = json_decode(Halo()); echo$x['data']['status'];?&gt; <br></pre><div><br></div>

avatar dadanhidyt
@dadanhidyt

1 Kontribusi 0 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban