Rumah > Soal Jawab > teks badan
Saya ada soalan tentang menggunakan PHP dengan JSON.
Saya menggunakan tatasusunan untuk menyimpan di dalam fail .json. Tatasusunan yang mengandungi data berasal dari index.php saya dan dihuni oleh pengguna, setakat ini baik. Semuanya disimpan dalam .json dan apabila saya mempunyai lebih daripada 1 pengguna yang menyimpan kandungan di dalamnya (bermakna terdapat 2 tatasusunan dalam fail .json), ia tidak mengembalikan data tetapi mengembalikan NULL. Adakah saya kehilangan sesuatu tentang menyimpan atau membaca fail JSON? Saya mendapati bahawa JSON saya tidak sah, ia menunjukkan kepada saya "elemen JSON berbilang akar" di dalam pengesah.
Ini adalah kod saya untuk menulis dan membaca .json:
public function JSONwrite($lists) { $listFill = json_encode($lists)."\n"; file_put_contents("/var/www/html/3sprint/test.json",$listFill,FILE_APPEND); } public function JSONread() { $string = file_get_contents("/var/www/html/3sprint/test.json"); $stringContent = json_decode($string, true); var_dump($stringContent); }
Fail JSON saya kelihatan seperti ini (2 tatasusunan diisi):
[{"count":"3","name":"testnameone"},{"count":"5","name":"testnametwo"},{"count":"6","name":"testnamethree"},{"info":106}] [{"count":"3","name":"testnamefour"},{"count":"5","name":"testnamefive"},{"count":"6","name":"testnamesix"},{"info":521}]
Di sinilah saya mengisi tatasusunan dan kemudian menghantarnya ke kaedah JSONwrite (ini berada di dalam gelung foreach):
$lists[]= [ "count"=>$count, "name"=>$name ]; } } $lists[]= [ "info" => $number ];
Adakah terdapat cara untuk mengesahkannya seperti ini supaya penyahkodan tidak mengembalikan nol?
P粉7242568602024-02-18 00:20:20
Suatu tatasusunan di bawah tatasusunan lain ialah JSON tidak sah. Anda harus menggunakan tatasusunan akar dan memastikan pengguna anda berada di dalamnya (tidak pasti sama ada perkara dalam tatasusunan itu masuk akal, tetapi anda mendapat idea itu):
[ [{"count":"3","name":"testnameone"},{"count":"5","name":"testnametwo"},{"count":"6","name":"testnamethree"},{"info":106}] [{"count":"3","name":"testnamefour"},{"count":"5","name":"testnamefive"},{"count":"6","name":"testnamesix"},{"info":521}] ]
Dalam erti kata lain, ia sepatutnya kelihatan seperti ini:
json_decode()
json_encode()