php - 使用 PHP 脚本编辑 JSON 数据

标签 php mysql json

这是我想通过 PHP 脚本运行的 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"}]}

我想要像这样的 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 数组中。最后用换行符内爆这个数组并将其写入文件:($data 是你给定的 json 作为 php 数组)

$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"}]}

关于php - 使用 PHP 脚本编辑 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34805838/

相关文章:

php - Yii 中的 SEO 友好 url

更新mysql

javascript - 如何使用反引号在 node.js 中编写多行 MySQL 查询?

javascript - 如何在 javascript 中使用从 Django 传递的上下文变量?已经改成Json类型了

json - Kafka 主题消息版本控制

php - 正则表达式:匹配句子 PHP 中的单词

php - 这是使用消息队列的正确方法吗?

php - 如何在将行流式传输到 BigQuery 时指定超时?

php - 如何只查询 ID 3、4、5 和 1?

security - JSONP 可以安全使用吗?