Maison > php教程 > php手册 > PHP格式化输出json数据例子整理

PHP格式化输出json数据例子整理

WBOY
Libérer: 2016-06-02 09:13:56
original
2242 Les gens l'ont consulté

输出json格式的数据是非常的简单,如果我们希望输入的json数据非常的整洁漂亮有格式我们要怎么来处理呢?下面小编就为各位介绍一下吧,希望例子能帮助到各位同学.

php直接输出json格式

php直接输出json格式,很多新手有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该加一句:

<?php
header(&#39;Content-type:text/json&#39;); //这句是重点,它告诉接收数据的对象此页面输出的是json数据;
$json = {
"name":
"yovae", "password":
    "12345"
}; //虽然这行数据形式上是json格式,如果没有上面那句的话,它是不会被当做json格式的数据被处理的;
echo $json;
Copier après la connexion

例子, JSON数据格式化函数 . 将字符串形式的JSON数据格式化为缩进形式, 通常使用json_encode转换出来的JSON串没有缩进, 有这个方法就爽多了 . 这里我默认使用了tab缩进, 如果要改成空格, 替换变量 $indentStr即可, 代码如下:

/** 
 * Indents a flat JSON string to make it more human-readable.
 * @param string $json The original JSON string to process.
 * @return string Indented version of the original JSON string.
 */
function indent($json) {
    $result = &#39;&#39;;
    $pos = 0;
    $strLen = strlen($json);
    $indentStr = &#39;&#39;;
    $newLine = "\n";
    $prevChar = &#39;&#39;;
    $outOfQuotes = true;
    for ($i = 0; $i <= $strLen; $i++) {
        // Grab the next character in the string.
        $char = substr($json, $i, 1);
        // Are we inside a quoted string?
        if ($char == &#39;"&#39; && $prevChar != &#39;\\&#39;) {
            $outOfQuotes = !$outOfQuotes;
            // If this character is the end of an element,
            // output a new line and indent the next line.
            
        } else if (($char == &#39;}&#39; || $char == &#39;]&#39;) && $outOfQuotes) {
            $result.= $newLine;
            $pos--;
            for ($j = 0; $j < $pos; $j++) {
                $result.= $indentStr;
            }
        }
        // Add the character to the result string.
        $result.= $char;
        // If the last character was the beginning of an element,
        // output a new line and indent the next line.
        if (($char == &#39;,&#39; || $char == &#39;{&#39; || $char == &#39;[&#39;) && $outOfQuotes) {
            $result.= $newLine;
            if ($char == &#39;{&#39; || $char == &#39;[&#39;) {
                $pos++;
            }
            for ($j = 0; $j < $pos; $j++) {
                $result.= $indentStr;
            }
        }
        $prevChar = $char;
    }
    return $result;
}
Copier après la connexion

好了这样输出的的json数据库非常漂亮格式化的形式了, 在这里我就不给例子了, 大家不防进入参考一下吧 . 


永久地址:

转载随意~请带上教程地址吧^^

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal