source: code/Website/php-ofc-library/json_format.php@ 7878

Last change on this file since 7878 was 7849, checked in by dennisw, 15 years ago
File size: 2.1 KB
Line 
1<?php
2
3// Pretty print some JSON
4function json_format($json)
5{
6 $tab = " ";
7 $new_json = "";
8 $indent_level = 0;
9 $in_string = false;
10
11/*
12 commented out by monk.e.boy 22nd May '08
13 because my web server is PHP4, and
14 json_* are PHP5 functions...
15
16 $json_obj = json_decode($json);
17
18 if($json_obj === false)
19 return false;
20
21 $json = json_encode($json_obj);
22*/
23 $len = strlen($json);
24
25 for($c = 0; $c < $len; $c++)
26 {
27 $char = $json[$c];
28 switch($char)
29 {
30 case '{':
31 case '[':
32 if(!$in_string)
33 {
34 $new_json .= $char . "\n" . str_repeat($tab, $indent_level+1);
35 $indent_level++;
36 }
37 else
38 {
39 $new_json .= $char;
40 }
41 break;
42 case '}':
43 case ']':
44 if(!$in_string)
45 {
46 $indent_level--;
47 $new_json .= "\n" . str_repeat($tab, $indent_level) . $char;
48 }
49 else
50 {
51 $new_json .= $char;
52 }
53 break;
54 case ',':
55 if(!$in_string)
56 {
57 $new_json .= ",\n" . str_repeat($tab, $indent_level);
58 }
59 else
60 {
61 $new_json .= $char;
62 }
63 break;
64 case ':':
65 if(!$in_string)
66 {
67 $new_json .= ": ";
68 }
69 else
70 {
71 $new_json .= $char;
72 }
73 break;
74 case '"':
75 if($c > 0 && $json[$c-1] != '\\')
76 {
77 $in_string = !$in_string;
78 }
79 default:
80 $new_json .= $char;
81 break;
82 }
83 }
84
85 return $new_json;
86}
Note: See TracBrowser for help on using the repository browser.