github.com/mem/u-root@v2.0.1-0.20181004165302-9b18b4636a33+incompatible/cmds/elvish/program/json.go (about) 1 package program 2 3 import ( 4 "bytes" 5 "fmt" 6 ) 7 8 func quoteJSON(s string) string { 9 var b bytes.Buffer 10 b.WriteRune('"') 11 for _, r := range s { 12 if r == '\\' { 13 b.WriteString(`\\`) 14 } else if r == '"' { 15 b.WriteString(`\"`) 16 } else if r < 0x20 { 17 fmt.Fprintf(&b, `\u%04x`, r) 18 } else { 19 b.WriteRune(r) 20 } 21 } 22 b.WriteRune('"') 23 return b.String() 24 }