method indentJson documentation in bbn\X

Indents a flat JSON string to make it human-readable.

Example

echo X::indentJson('{"firstName": "John", "lastName": "Smith", "age": 25}'); /* { "firstName": "John", "lastName": "Smith", "isAlive": true, "age": 25 } function(string $json) { $result = ''; $pos = 0; $strLen = \strlen($json); $indentStr = ' '; $newLine = "\n"; $prevChar = ''; $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 == '"' && $prevChar != '\\') { $outOfQuotes = !$outOfQuotes; // If this character is the end of an element, // output a new line and indent the next line. } elseif(($char == '}' || $char == ']') && $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 == ',' || $char == '{' || $char == '[') && $outOfQuotes) { $result .= $newLine; if ($char == '{' || $char == '[') { $pos ++; } for ($j = 0; $j < $pos; $j++) { $result .= $indentStr; } } $prevChar = $char; } return $result; }

Indents a flat JSON string to make it human-readable. BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way

This website uses cookies to ensure you get the best experience on our website.