Pada ReST, seringkali kita menggunakan format JSON atau XML untuk melakukan representasi record pada database.
Pada saat menggunakan format JSON dalam PHP, saya memiliki kasus sebuah array yang memiliki key default, seperti ini:
<?php $default = array('Spirit', 'Walk', 'Run', 'Jump'); ?>
Array Key tersebut secara default tentu akan sama seperti ini:
<?php $default = array(0 => 'Spirit', 1 => 'Walk', 2 => 'Run', 3 => 'Jump'); ?>
Permasalahannya adalah ketika array tersebut di encode kedalam format JSON menggunakan function json_encode(), array key tersebut “hilang”, menjadi seperti ini:
["Spirit","Walk","Run","Jump"]
Salah satu solusinya agar array key tersebut bisa “dibawa” kedalam format JSON, array tersebut harus berbentuk object, dengan menambahkan konstanta JSON_FORCE_OBJECT sebagai parameter function json_encode(), menjadi:
<?php $encode = json_encode($default, JSON_FORCE_OBJECT); ?>
Sehingga menghasilkan:
{"0":"Spirit","1":"Walk","2":"Run","3":"Jump"}
Dengan menjadikannya object, array key tersebut akan “dibawa” dalam format JSON. 😀
Lalu untuk melakukan proses decode format JSON object tersebut ke dalam bentuk array, gunakan paramater TRUE pada function json_decode(), seperti ini:
<?php $decode = json_decode($encode, TRUE); ?>
Hasil decode ketika dilakukan var_dump(), kembali menjadi array, seperti ini:
array(4) { [0]=> string(6) "Spirit" [1]=> string(4) "Walk" [2]=> string(3) "Run" [3]=> string(4) "Jump" }
Selamat mencoba! 😀