使用 PHP 脚本编辑 JSON 数据


Edit JSON data by the use of PHP script

这是我的JSON代码,我想通过PHP脚本运行:

{"source":"URl","title":"New title","created":"date","id":"xxxxx","comments":[{"id":"xxxx","imported_display_name":"xxxx","body_html":"xxxxx","imported_email":"xxxxx","parent_id":"xxxx"}]},{"source":"URl","title":"New title","created":"date","id":"xxxxx","comments":[{"id":"xxxx","imported_display_name":"xxxx","body_html":"xxxxx","imported_email":"xxxxx","parent_id":"xxxx"}]}

我想要这样的 JSON 数据。

{"source":"URl","title":"New title","created":"date","id":"xxxxx","comments":[{"id":"xxxx","imported_display_name":"xxxx","body_html":"xxxxx","imported_email":"xxxxx","parent_id":"xxxx"}]}
{"source":"URl","title":"New title","created":"date","id":"xxxxx","comments":[{"id":"xxxx","imported_display_name":"xxxx","body_html":"xxxxx","imported_email":"xxxxx","parent_id":"xxxx"}]}

表示每个源都以换行符开头,它们之间没有逗号。这是我的 php 代码,它提供了 JSON 文件。

$p=0;
array_push($result_comments,$result);
$fp = fopen($p.'_results.json', 'w');
fwrite($fp, json_encode(utf8ize($result_comments)));
fclose($fp);
 $p ++;

这是函数

function utf8ize($d) {
    if (is_array($d)) {
        foreach ($d as $k => $v) {
            $d[$k] = utf8ize($v);
        }
    } else if (is_string ($d)) {
        return utf8_encode($d);
    }
    return $d;
}

请建议我可以通过修改 php 脚本来获得所需的 json 数据。或者我必须手动删除它。

您可以尝试如下操作。Json 对每一行进行编码并将其添加到数组$result_comments。最后用换行符内爆这个数组并写入文件:(你给 json 作为 php 数组$data

$data = array (
    0 =>
        array (
            'source' => 'URl',
            'title' => 'New title',
            'created' => 'date',
            'id' => 'xxxxx',
            'comments' =>
                array (
                    0 =>
                        array (
                            'id' => 'xxxx',
                            'imported_display_name' => 'xxxx',
                            'body_html' => 'xxxxx',
                            'imported_email' => 'xxxxx',
                            'parent_id' => 'xxxx',
                        ),
                ),
        ),
    1 =>
        array (
            'source' => 'URl',
            'title' => 'New title',
            'created' => 'date',
            'id' => 'xxxxx',
            'comments' =>
                array (
                    0 =>
                        array (
                            'id' => 'xxxx',
                            'imported_display_name' => 'xxxx',
                            'body_html' => 'xxxxx',
                            'imported_email' => 'xxxxx',
                            'parent_id' => 'xxxx',
                        ),
                ),
        ),
);
$result_comments = array();
foreach($data as $result){
    $result_comments[] = json_encode(utf8ize($result));
}
file_put_contents('results.json',implode(PHP_EOL,$result_comments));
// result.json
// {"source":"URl","title":"New title","created":"date","id":"xxxxx","comments":[{"id":"xxxx","imported_display_name":"xxxx","body_html":"xxxxx","imported_email":"xxxxx","parent_id":"xxxx"}]}
// {"source":"URl","title":"New title","created":"date","id":"xxxxx","comments":[{"id":"xxxx","imported_display_name":"xxxx","body_html":"xxxxx","imported_email":"xxxxx","parent_id":"xxxx"}]}