当前位置:首页 > 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数据例

分享到: