写入JSON文件

时间:2018-05-23 22:27:53

标签: php json

有谁知道为什么它不起作用?

PHP

<?php

if (isset($_POST['submit'])) {

    $twitchArray = array(
        "TwitchName" => $_POST['twitchName'],
        "TwitchHref" => $_POST['twitchHref'],
        "TwitchDescription" => $_POST['twitchDescription']
    );

    $json = json_encode($twitchArray);

    $file = 'twitch.json';

    file_put_contents($file, $json);

    echo json_decode('twitch.json');
}
?>

我真的不知道为什么它不起作用。你能救我吗?

2 个答案:

答案 0 :(得分:1)

您正在尝试解码字符串twitch.json,而不是您已编写内容的变量文件。您需要使用file_get_contents来读取文件,因为您需要使用file_put_contents来写入文件。

<?php

if (isset($_POST['submit'])) {

    $twitchArray = array(
        "TwitchName" => $_POST['twitchName'],
        "TwitchHref" => $_POST['twitchHref'],
        "TwitchDescription" => $_POST['twitchDescription']
    );

    $json = json_encode($twitchArray);

    $file = 'twitch.json';

    file_put_contents($file, $json);

    echo file_get_contents($file);
}
?>

http://php.net/manual/en/function.file-get-contents.php

答案 1 :(得分:1)

为了回显输出json,你需要做的就是

echo $json;

在您的情况下假设这是您的实际代码的更改版本,您需要将json字符串传递给json_decode,而不是文件名。见json_decode on php docs

echo json_decode(file_get_contents('twitch.json')); 

但是上述内容会导致回显ArraystdClassnull,因为twitch.json文件的内容将转换为数组或对象(如果json无效,则返回null。因此,回显文件的json内容的正确方法应该是

echo file_get_contents($file);