输出json格式的数据是非常的简单,如果我们希望输入的json数据非常的整洁漂亮有格式我们要怎么来处理呢?下面小编就为各位介绍一下吧,希望例子能帮助到各位同学.
php直接输出json格式
php直接输出json格式,很多新手有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该加一句:
- <?php
- header('Content-type:text/json');
- $json={"name":"yovae","password":"12345"};
- echo $json;
- ?>
例子,JSON 数据格式化函数.
将字符串形式的JSON 数据格式化为缩进形式,通常使用 json_encode 转换出来的 JSON 串没有缩进,有这个方法就爽多了.
这里我默认使用了 tab 缩进,如果要改成空格,替换变量 $indentStr 即可,代码如下:
-
-
-
-
-
- function indent ($json) {
-
- $result = '';
- $pos = 0;
- $strLen = strlen($json);
- $indentStr = '';
- $newLine = "\n";
- $prevChar = '';
- $outOfQuotes = true;
-
- for ($i=0; $i<=$strLen; $i++) {
-
-
- $char = substr($json, $i, 1);
-
- if ($char == '"' && $prevChar != '\\') {
- $outOfQuotes = !$outOfQuotes;
-
-
- } else if(($char == '}' || $char == ']') && $outOfQuotes) {
- $result .= $newLine;
- $pos --;
- for ($j=0; $j<$pos; $j++) {
- $result .= $indentStr;
- }
- }
-
- $result .= $char;
-
-
- if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
- $result .= $newLine;
- if ($char == '{' || $char == '[') {
- $pos ++;
- }
- for ($j = 0; $j < $pos; $j++) {
- $result .= $indentStr;
- }
- }
- $prevChar = $char;
- }
-
- return $result;
-
- }
好了这样输出的的json数据库非常漂亮格式化的形式了,在这里我就不给例子了,大家不防进入参考一下吧. |