json_decode mengembalikan null selepas menyimpan 2 tatasusunan dalam fail .json - pengesahan
P粉333395496
P粉333395496 2024-02-17 22:35:10
0
1
352

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粉333395496
P粉333395496

membalas semua(1)
P粉724256860

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:

  1. Pengguna menghantar borang
  2. Anda telah membaca kandungan fail
  3. Anda boleh menyahkodnya menggunakan json_decode()
  4. Anda menambah pada tatasusunan
  5. Anda boleh mengekod semula menggunakan json_encode()
  6. Anda menyimpan keseluruhan JSON baharu pada fail, menggantikan kandungan lama
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!