2016-01-05 37 views
0

我建立与封闭在一个for循环数PARAMATERS按照以下的数组:多个JSON根元素| JSON编码

for ($x = 1; $x <= 2; $x++) { 

     $jsonarray=array(

     'id' => $x, 
     'title' => $title, 
     'url' => $url, 

    ); 

     echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES); 

    } 

上面的代码将创建5个阵列,并将它们编码成一个JSON按以下:

{ 
    "id":1, 
    "title":"Test Title", 
    "url":"http://test.com/" 
}{ 
    "id":2, 
    "title":"Test Title 2", 
    "url":"http://test2.com", 
} 

上面的JSON输出不是有效的JSON,因为它需要是需要用数组[]分隔的对象。我怎样才能做到这一点?

回答

0

在循环之后对数组进行编码并将值添加到数组中,例如,

for ($x = 1; $x <= 2; $x++) { 

    $jsonarray[] = array(
        'id' => $x, 
        'title' => $title, 
        'url' => $url, 
        ); 
} 

echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES); 
0

您应该在尝试将其转换为JSON字符串之前构建完整的数组。不像你在做什么,单独输出每个事件。

所以做这样的

$jsonarray = array(); 

for ($x = 1; $x <= 2; $x++) { 
    $jsonarray[] = array('id' => $x, 
          'title' => $title, 
          'url' => $url); 

} 
echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES); 
-1

创建一个数组,而不是

for ($x = 1; $x <= 2; $x++) { 

$jsonarray[] = array(
       'id' => $x, 
       'title' => $title, 
       'url' => $url, 
       ); 
} 

echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);