2013-02-25 96 views
4

我想格式化回聲json_encode,輸出是目前格式回聲json_encode

{"results":{"course":"CC140","books":{"book":[[{"id":"300862","title":"Building object-oriented software","isbn":"0070431965","borrowedcount":"6"}]]}}} 

而我想輸出是這樣的:

{ 
    "results": { 
     "course": "CC140", 
     "books": { 
      "book": [ 
       [ 
        { 
         "id": "300862", 
         "title": "Building object-oriented software", 
         "isbn": "0070431965", 
         "borrowedcount": "6" 
        } 
       ] 
      ] 
     } 
    } 
} 

這是使代碼JSON

$temp = array(); 
    foreach ($my_array as $counter => $bc) { 
     $temp['id'] = "$id[$counter]"; 
     $temp['title'] = "$title[$counter]"; 
     $temp['isbn'] = "$isbn[$counter]"; 
     $temp['borrowedcount'] = "$borrowedcount[$counter]"; 
     $t2[] = $temp; 
    } 

     $data = array(
    "results" => array(
    "course" => "$cc", 
    "books" => array(
     "book" => 
     array( 
     $t2 
    ) 
    ) 
) 
); 
    echo json_encode($data); 

任何幫助或指針將不勝感激,謝謝

添加此

header('Content-type: application/json'); 
echo json_encode($data, JSON_PRETTY_PRINT); 

格式化JSON,但頭部還奏整個HTML文檔

+0

你怎麼可能會打擾JSON是什麼樣子?它的結構很重要,而不是格式化的方式...... – 2013-02-25 12:29:59

+0

可能添加json頭文件將有所幫助。 – 2013-02-25 12:31:10

回答

1

可以在PHP中使用json_encode($data, JSON_PRETTY_PRINT) 5.4+

在PHP 5.3 &下,你可能嘗試使用正則表達式格式化它,但它不太安全(或者您可以使用庫來編碼json)。

12

我給出的第一條建議是:不要。 JSON是一種數據格式。使用工具處理它,而不是試圖讓你的服務器格式化它。

如果你要忽略這一點,那麼請參閱json_encode function它給人的選項包括JSON_PRETTY_PRINT這是在返回的數據描述爲用空白來格式化列表中手動。自PHP 5.4.0起可用。

因而,步驟是:

  1. 確保您使用的是PHP 5.4.0或更高版本
  2. json_encode($data, JSON_PRETTY_PRINT);
+4

漂亮打印本身並沒有正確顯示,但是添加了 頭('Content-type:application/json'); 之前工作,但輸出HTML文件 – 2013-02-25 13:03:48