2013-02-25 59 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