2015-08-25 135 views
-2

我需要一些說明如何糾正json的 的打印幅面我的代碼:如何將json格式從數組更改爲對象?

while($row = mysqli_fetch_array($result)){ 

    //Step 4 Action current row 
    $img = $row['image']; 
    $link = $row['link']; 

    $posts[] = array('img'=> $img, 'url'=> $link); 

    //echo $row['image'] . "<br/> " ; 
    //echo $row['link'] . "<br/> " ; 

} 
echo json_encode($posts, JSON_PRETTY_PRINT); 

輸出

[ 

    { 
     "img": "catalog\/demo\/banners\/iPhone6.jpg", 
     "url": "index.php?route=product\/product&amp;path=57&amp;product_id=49" 
    }, 
    { 
     "img": "catalog\/demo\/banners\/MacBookAir.jpg", 
     "url": "" 
    } 
] 

我想:

{ 
     "img": "catalog\/demo\/banners\/iPhone6.jpg", 
     "url": "index.php?route=product\/product&amp;path=57&amp;product_id=49" 
    }, 
    { 
     "img": "catalog\/demo\/banners\/MacBookAir.jpg", 
     "url": "" 
    } 
+1

使用'json_encode();'沒有JSON_PRETTY_PRINT – aldrin27

+1

你想要的不是JSON。 – deceze

回答

1

這不是一個有效的格式JSON

{ 
    "img": "catalog\/demo\/banners\/iPhone6.jpg", 
    "url": "index.php?route=product\/product&amp;path=57&amp;product_id=49" 
}, 
{ 
    "img": "catalog\/demo\/banners\/MacBookAir.jpg", 
    "url": "" 
} 

你有一個,分隔符,分隔什麼? 你必須把它作爲數組。

+0

你的意思是一個有效的json格式應該沒有分隔符 –

+2

@Amassi號如果你想有*多個對象*,它們需要包含在一個數組中。你得到的輸出已經很完美了。 – deceze

+0

不,JSON基本上是javascript對象的表示,你不能讓對象等於那個。你的格式是[[object,object,object]],它是'[{},{},{}]'。您可以將其設爲醜陋的{0:{},1:{}}'鍵值對象 –