创建multiroot json文件

时间:2015-05-08 14:56:52

标签: php json

我想创建一个json文件,其数组逐行编码为json。所以它看起来像这样:

{...valid json 1...}
{...valid json 2...}

但是当我使用带有“/ n”标志的简单fwirte来执行此操作时,我在json文件的第一行中得到意外的EOF。就像我无法在一个文件中逐个创建jsons,它具有.json扩展名。

什么是错的,我该如何解决?

EDIT。我使用的示例代码:

$file = fopen("output.json", "w");

$arr = ['a', 'b'];

fwrite($file, json_encode($arr), "\n");

fclose($file);

2 个答案:

答案 0 :(得分:2)

根据手册,fwrite确实接受以下三个参数:

resource $handle
string $string
int $length (optional)

所以你必须做以下事情:

$file = fopen("output.json", "w");

$arr = ['a', 'b'];

fwrite($file, json_encode($arr) . "\n");

fclose($file);

请注意,字符串连接运算符是.(只是一个点)

答案 1 :(得分:1)

添加到@Atmoscreations回答:

您的输出格式在技术上是无效的JSON。如果要存储值/对象列表,则应将所有内容封装在JSON列表中:

[    
    {...valid json 1...},
    {...valid json 2...},
    ...
    {...valid json N...}
]

您可以使用PHP对象执行此操作:

$file = fopen("output.json", "w");
$arr = [
    ['a', 'b'],
    ['c', 'd'],
];
fwrite($file, json_encode($arr));
fclose($file);