Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2015
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. #!/usr/bin/php
  2. <?php
  3. echo json_format(file_get_contents('php://stdin')) . "\n";
  4. // Pretty print some JSON
  5. function json_format($json)
  6. {
  7. $tab = " ";
  8. $new_json = "";
  9. $indent_level = 0;
  10. $in_string = false;
  11.  
  12. $json_obj = json_decode($json);
  13.  
  14. if($json_obj === false)
  15. return false;
  16.  
  17. $json = json_encode($json_obj);
  18. $len = strlen($json);
  19.  
  20. for($c = 0; $c < $len; $c++)
  21. {
  22. $char = $json[$c];
  23. switch($char)
  24. {
  25. case '{':
  26. case '[':
  27. if(!$in_string)
  28. {
  29. $new_json .= $char . "\n" . str_repeat($tab, $indent_level+1);
  30. $indent_level++;
  31. }
  32. else
  33. {
  34. $new_json .= $char;
  35. }
  36. break;
  37. case '}':
  38. case ']':
  39. if(!$in_string)
  40. {
  41. $indent_level--;
  42. $new_json .= "\n" . str_repeat($tab, $indent_level) . $char;
  43. }
  44. else
  45. {
  46. $new_json .= $char;
  47. }
  48. break;
  49. case ',':
  50. if(!$in_string)
  51. {
  52. $new_json .= ",\n" . str_repeat($tab, $indent_level);
  53. }
  54. else
  55. {
  56. $new_json .= $char;
  57. }
  58. break;
  59. case ':':
  60. if(!$in_string)
  61. {
  62. $new_json .= ": ";
  63. }
  64. else
  65. {
  66. $new_json .= $char;
  67. }
  68. break;
  69. case '"':
  70. if($c > 0 && $json[$c-1] != '\\')
  71. {
  72. $in_string = !$in_string;
  73. }
  74. default:
  75. $new_json .= $char;
  76. break;
  77. }
  78. }
  79.  
  80. return $new_json;
  81. }
  82. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement