@@ -267,36 +267,40 @@ func parseObject(s string, c *cache, depth int) (*Value, string, error) {
267
267
}
268
268
269
269
func escapeString (dst []byte , s string ) []byte {
270
- dst = append (dst , 34 )
270
+ dst = append (dst , '"' )
271
271
for i := 0 ; i < len (s ); i ++ {
272
272
c := s [i ]
273
273
switch {
274
- case c == 0x22 :
274
+ case c == '"' :
275
275
// quotation mark
276
- dst = append (dst , []byte {92 , 34 }... )
277
- case c == 0x5c :
276
+ dst = append (dst , []byte {'\\' , '"' }... )
277
+ case c == '\\' :
278
278
// reverse solidus
279
- dst = append (dst , []byte {92 , 92 }... )
279
+ dst = append (dst , []byte {'\\' , '\\' }... )
280
280
case c >= 0x20 :
281
- // default, rest are control chars
281
+ // default, rest below are control chars
282
282
dst = append (dst , c )
283
+ case c == 0x08 :
284
+ dst = append (dst , []byte {'\\' , 'b' }... )
283
285
case c < 0x09 :
284
- dst = append (dst , []byte {92 , 117 , 48 , 48 , 48 , 48 + c }... )
286
+ dst = append (dst , []byte {'\\' , 'u' , '0' , '0' , '0' , '0' + c }... )
285
287
case c == 0x09 :
286
- dst = append (dst , []byte {92 , 116 }... )
288
+ dst = append (dst , []byte {'\\' , 't' }... )
287
289
case c == 0x0a :
288
- dst = append (dst , []byte {92 , 110 }... )
290
+ dst = append (dst , []byte {'\\' , 'n' }... )
291
+ case c == 0x0c :
292
+ dst = append (dst , []byte {'\\' , 'f' }... )
289
293
case c == 0x0d :
290
- dst = append (dst , []byte {92 , 114 }... )
294
+ dst = append (dst , []byte {'\\' , 'r' }... )
291
295
case c < 0x10 :
292
- dst = append (dst , []byte {92 , 117 , 48 , 48 , 48 , 87 + c }... )
296
+ dst = append (dst , []byte {'\\' , 'u' , '0' , '0' , '0' , 0x57 + c }... )
293
297
case c < 0x1a :
294
- dst = append (dst , []byte {92 , 117 , 48 , 48 , 49 , 32 + c }... )
298
+ dst = append (dst , []byte {'\\' , 'u' , '0' , '0' , '1' , 0x20 + c }... )
295
299
case c < 0x20 :
296
- dst = append (dst , []byte {92 , 117 , 48 , 48 , 49 , 71 + c }... )
300
+ dst = append (dst , []byte {'\\' , 'u' , '0' , '0' , '1' , 0x47 + c }... )
297
301
}
298
302
}
299
- dst = append (dst , 34 )
303
+ dst = append (dst , '"' )
300
304
return dst
301
305
}
302
306
0 commit comments