@@ -34,4 +34,78 @@ func Steam64To32(steamID int64) (steam32 string) {
3434
3535 steam32 = "STEAM_0-" + strconv .FormatInt (remainder , 10 ) + "-" + strconv .FormatInt (steamID , 10 )
3636 return
37+ }
38+
39+ // Credit to https://github.com/tidwall/jsonc - MIT License https://github.com/tidwall/jsonc/blob/master/LICENSE
40+ func StandardJSON (src , dst []byte ) []byte {
41+ dst = dst [:0 ]
42+
43+ for i := 0 ; i < len (src ); i ++ {
44+ if src [i ] == '/' {
45+ if i < len (src )- 1 {
46+ if src [i + 1 ] == '/' {
47+ dst = append (dst , ' ' , ' ' )
48+ i += 2
49+ for ; i < len (src ); i ++ {
50+ if src [i ] == '\n' {
51+ dst = append (dst , '\n' )
52+ break
53+ } else if src [i ] == '\t' || src [i ] == '\r' {
54+ dst = append (dst , src [i ])
55+ } else {
56+ dst = append (dst , ' ' )
57+ }
58+ }
59+ continue
60+ }
61+ if src [i + 1 ] == '*' {
62+ dst = append (dst , ' ' , ' ' )
63+ i += 2
64+ for ; i < len (src )- 1 ; i ++ {
65+ if src [i ] == '*' && src [i + 1 ] == '/' {
66+ dst = append (dst , ' ' , ' ' )
67+ i ++
68+ break
69+ } else if src [i ] == '\n' || src [i ] == '\t' ||
70+ src [i ] == '\r' {
71+ dst = append (dst , src [i ])
72+ } else {
73+ dst = append (dst , ' ' )
74+ }
75+ }
76+ continue
77+ }
78+ }
79+ }
80+
81+ dst = append (dst , src [i ])
82+ if src [i ] == '"' {
83+ for i = i + 1 ; i < len (src ); i ++ {
84+ dst = append (dst , src [i ])
85+ if src [i ] == '"' {
86+ j := i - 1
87+ for ; ; j -- {
88+ if src [j ] != '\\' {
89+ break
90+ }
91+ }
92+ if (j - i )% 2 != 0 {
93+ break
94+ }
95+ }
96+ }
97+ } else if src [i ] == '}' || src [i ] == ']' {
98+ for j := len (dst ) - 2 ; j >= 0 ; j -- {
99+ if dst [j ] <= ' ' {
100+ continue
101+ }
102+ if dst [j ] == ',' {
103+ dst [j ] = ' '
104+ }
105+ break
106+ }
107+ }
108+ }
109+
110+ return dst
37111}
0 commit comments