Php 多个JSON根元素| JSON编码
我正在创建一个数组,其中包含多个包含在for循环中的参数,如下所示:Php 多个JSON根元素| JSON编码,php,arrays,json,Php,Arrays,Json,我正在创建一个数组,其中包含多个包含在for循环中的参数,如下所示: for ($x = 1; $x <= 2; $x++) { $jsonarray=array( 'id' => $x, 'title' => $title, 'url' => $url, ); echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);
for ($x = 1; $x <= 2; $x++) {
$jsonarray=array(
'id' => $x,
'title' => $title,
'url' => $url,
);
echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);
}
{
"id":1,
"title":"Test Title",
"url":"http://test.com/"
}{
"id":2,
"title":"Test Title 2",
"url":"http://test2.com",
}
上面的JSON输出不是一个有效的JSON,因为它需要是一个数组[]分隔的对象。如何实现这一点?在循环后对数组进行编码,并在数组中添加值,例如
for ($x = 1; $x <= 2; $x++) {
$jsonarray[] = array(
'id' => $x,
'title' => $title,
'url' => $url,
);
}
echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);
您应该先构建完整的数组,然后再尝试将其转换为JSON字符串。不是像您现在这样,单独输出每个事件 那么就这样做吧
$jsonarray = array();
for ($x = 1; $x <= 2; $x++) {
$jsonarray[] = array( 'id' => $x,
'title' => $title,
'url' => $url);
}
echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);
改为创建一个数组
for ($x = 1; $x <= 2; $x++) {
$jsonarray[] = array(
'id' => $x,
'title' => $title,
'url' => $url,
);
}
echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);