在發佈我的問題之前,我花了幾個小時查看幾個相似的答案。PHP:無法對多行的json進行編碼
我從我的數據庫中的表中檢索數據,並且我想將它編碼成JSON。但是,json_encode()的輸出僅在表格有單行時纔有效。如果有多行,則在http://jsonlint.com/處的測試會返回錯誤。
這是我的查詢:
$result = mysql_query($query);
$rows = array();
//retrieve and print every record
while($r = mysql_fetch_assoc($result)){
$rows['data'] = $r;
//echo result as json
echo json_encode($rows);
}
這讓我下面的JSON:
{
"data":
{
"entry_id":"2",
"entry_type":"Information Relevant to the Subject",
"entry":"This is my second entry."
}
}
{
"data":{
"entry_id":"1",
"entry_type":"My Opinion About What Happened",
"entry":"This is my first entry."
}
}
當我運行在http://jsonlint.com/測試,它返回此錯誤:
Parse error on line 29:
..."No comment" }}{ "data": {
---------------------^
Expecting 'EOF', '}', ',', ']'
不過,如果我只使用JSON的前半部分...
{
"data":
{
"entry_id":"2",
"entry_type":"Information Relevant to the Subject",
"entry":"This is my second entry."
}
}
...或者,如果我只測試下半年...
{
"data":{
"entry_id":"1",
"entry_type":"My Opinion About What Happened",
"entry":"This is my first entry."
}
}
...相同的測試將返回 「有效的JSON」。
我想要的是能夠在表中的每一行輸出一個單一的[有效的] JSON。
任何建議將非常感激。
太感謝你了!所有的解決方案都可以工作,而你提供了最全面的解釋。這不僅是正確的,但我完全忽略了其他的例子做放置json_encode函數while循環之外。我很抱歉沒有注意到,並感謝您的時間。 – asraelarcangel 2012-02-19 20:22:53