Как я могу украсить JSON программно? [закрыто]


Вы можете сказать, что это дубликат этого вопроса , но на первоначальный вопрос там НЕ было ответа. Важной частью вопроса является: programmatically?

Существует ли какая-либо функция php? Родной или самодельный?

Author: Community, 2011-07-13

6 answers

Похоже, это может сработать:

Http://recursive-design.com/blog/2008/03/11/format-json-with-php/

Результат Бытия:

[[["er",null,null,null,null,500],["e",2,null,null,57]],'45932b7d6d6dc08e']

До

[
  [
    [
      "er",
      null,
      null,
      null,
      null,
      500
    ],
    [
      "e",
      2,
      null,
      null,
      57
    ]
  ],
  '45932b7d6d6dc08e'
] 
 13
Author: GregSchoen, 2011-07-13 00:11:29

Json_encode() имеет флаг JSON_PRETTY_PRINT

echo json_encode($data, JSON_PRETTY_PRINT);
 82
Author: Mārtiņš Briedis, 2016-04-09 09:26:48

У меня был тот же вопрос прямо сейчас. Но, как и у вас, у меня php

 3
Author: Hermann Bier, 2011-08-17 12:00:09

Этот простой трюк сделал свою работу за меня, я не хотел никаких дополнительных библиотек или функций:

$json = '{"status":"0","status_translated":"Request successful!","data":"1"}';
$json_beautified = str_replace(array("{", "}", '","'), array("{<br />&nbsp;&nbsp;&nbsp;&nbsp;", "<br />}", '",<br />&nbsp;&nbsp;&nbsp;&nbsp;"'), $json);

И результат выглядит так:

{
    "status":"0",
    "status_translated":"Request successful!",
    "data":"1"
}

Это только для кода json, который углубляется на 1 шаг, я надеюсь, что это поможет.

 2
Author: Edi Budimilic, 2011-12-08 17:20:29

Я создал неразрушающий JSON-улучшитель, который поддерживает несколько глубоких уровней.

/**
 * JSON beautifier
 * 
 * @param string    The original JSON string
 * @param   string  Return string
 * @param string    Tab string
 * @return string
 */
function pretty_json($json, $ret= "\n", $ind="\t") {

    $beauty_json = '';
    $quote_state = FALSE;
    $level = 0; 

    $json_length = strlen($json);

    for ($i = 0; $i < $json_length; $i++)
    {                               

        $pre = '';
        $suf = '';

        switch ($json[$i])
        {
            case '"':                               
                $quote_state = !$quote_state;                                                           
                break;

            case '[':                                                           
                $level++;               
                break;

            case ']':
                $level--;                   
                $pre = $ret;
                $pre .= str_repeat($ind, $level);       
                break;

            case '{':

                if ($i - 1 >= 0 && $json[$i - 1] != ',')
                {
                    $pre = $ret;
                    $pre .= str_repeat($ind, $level);                       
                }   

                $level++;   
                $suf = $ret;                                                                                                                        
                $suf .= str_repeat($ind, $level);                                                                                                   
                break;

            case ':':
                $suf = ' ';
                break;

            case ',':

                if (!$quote_state)
                {  
                    $suf = $ret;                                                                                                
                    $suf .= str_repeat($ind, $level);
                }
                break;

            case '}':
                $level--;   

            case ']':
                $pre = $ret;
                $pre .= str_repeat($ind, $level);
                break;

        }

        $beauty_json .= $pre.$json[$i].$suf;

    }

    return $beauty_json;

}   
 2
Author: Juan Lago, 2013-04-06 15:04:36

Для использования командной строки вы можете использовать js beautifier. Нет необходимости делиться своими данными с внешними сайтами.

Https://github.com/vivekpathak/tools/blob/master/jb/jb

 -1
Author: vpathak, 2013-01-04 16:03:44