@@ -59,6 +59,7 @@ func ColorfulResponse(str, contenttype string) string {
59
59
func ColorfulJson (str string ) string {
60
60
var rsli []rune
61
61
var key , val , startcolor , endcolor , startsemicolon bool
62
+ var prev rune
62
63
for _ , char := range []rune (str ) {
63
64
switch char {
64
65
case ' ' :
@@ -75,22 +76,26 @@ func ColorfulJson(str string) string {
75
76
val = false
76
77
rsli = append (rsli , char )
77
78
case '"' :
78
- if startcolor {
79
+ if startsemicolon && prev == '\\' {
79
80
rsli = append (rsli , char )
80
- if key {
81
- rsli = append (rsli , []rune (ColorStart (Magenta ))... )
82
- } else if val {
83
- rsli = append (rsli , []rune (ColorStart (Cyan ))... )
84
- }
85
- startsemicolon = true
86
- key = false
87
- val = false
88
- startcolor = false
89
81
} else {
90
- rsli = append (rsli , []rune (EndColor )... )
91
- rsli = append (rsli , char )
92
- endcolor = true
93
- startsemicolon = false
82
+ if startcolor {
83
+ rsli = append (rsli , char )
84
+ if key {
85
+ rsli = append (rsli , []rune (ColorStart (Magenta ))... )
86
+ } else if val {
87
+ rsli = append (rsli , []rune (ColorStart (Cyan ))... )
88
+ }
89
+ startsemicolon = true
90
+ key = false
91
+ val = false
92
+ startcolor = false
93
+ } else {
94
+ rsli = append (rsli , []rune (EndColor )... )
95
+ rsli = append (rsli , char )
96
+ endcolor = true
97
+ startsemicolon = false
98
+ }
94
99
}
95
100
case ',' :
96
101
if ! startsemicolon {
@@ -133,6 +138,7 @@ func ColorfulJson(str string) string {
133
138
}
134
139
rsli = append (rsli , char )
135
140
}
141
+ prev = char
136
142
}
137
143
return string (rsli )
138
144
}
0 commit comments