當前位置:首頁 > PHP教程 > php應用 > 列表

PHP格式化輸出json數據例子整理

發布:smiling 來源: PHP粉絲網  添加日期:2014-09-21 22:33:15 瀏覽: 評論:0 

輸出json格式的數據是非常的簡單,如果我們希望輸入的json數據非常的整潔漂亮有格式我們要怎么來處理呢?下面小編就為各位介紹一下吧,希望例子能幫助到各位同學.

php直接輸出json格式

php直接輸出json格式,很多新手有一個誤區,以為用echo json_encode($data);這樣就是輸出json數據了,沒錯這樣輸出文本是json格式文本而不是json數據,正確的寫法是應該加一句:

  1. <?php 
  2. header('Content-type:text/json');     //這句是重點,它告訴接收數據的對象此頁面輸出的是json數據; 
  3. $json={"name":"yovae","password":"12345"};    //雖然這行數據形式上是json格式,如果沒有上面那句的話,它是不會被當做json格式的數據被處理的; 
  4. echo $json;  
  5. ?> 

例子,JSON 數據格式化函數.

將字符串形式的JSON 數據格式化為縮進形式,通常使用 json_encode 轉換出來的 JSON 串沒有縮進,有這個方法就爽多了.

這里我默認使用了 tab 縮進,如果要改成空格,替換變量 $indentStr 即可,代碼如下:

  1. /** 
  2.  * Indents a flat JSON string to make it more human-readable. 
  3.  * @param string $json The original JSON string to process. 
  4.  * @return string Indented version of the original JSON string. 
  5.  */ 
  6. function indent ($json) { 
  7.  
  8. $result = ''
  9. $pos = 0; 
  10. $strLen = strlen($json); 
  11. $indentStr = ''
  12. $newLine = "\n"
  13. $prevChar = ''
  14. $outOfQuotes = true; 
  15.  
  16. for ($i=0; $i<=$strLen$i++) { 
  17.  
  18. // Grab the next character in the string. 
  19. $char = substr($json$i, 1); 
  20. // Are we inside a quoted string? 
  21. if ($char == '"' && $prevChar != '\\') { 
  22. $outOfQuotes = !$outOfQuotes
  23. // If this character is the end of an element, 
  24. // output a new line and indent the next line. 
  25. else if(($char == '}' || $char == ']') && $outOfQuotes) { 
  26. $result .= $newLine
  27. $pos --; 
  28. for ($j=0; $j<$pos$j++) { 
  29. $result .= $indentStr
  30. // Add the character to the result string. 
  31. $result .= $char
  32. // If the last character was the beginning of an element, 
  33. // output a new line and indent the next line. 
  34. if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) { 
  35. $result .= $newLine;//開源軟件:phpfensi.com 
  36. if ($char == '{' || $char == '[') { 
  37. $pos ++; 
  38. for ($j = 0; $j < $pos$j++) { 
  39. $result .= $indentStr
  40. $prevChar = $char
  41.  
  42. return $result
  43.  

好了這樣輸出的的json數據庫非常漂亮格式化的形式了,在這里我就不給例子了,大家不防進入參考一下吧.

Tags: PHP格式化 json數據例

分享到:

天气网首页彩吧