...
1 package json
2
3 import (
4 "bytes"
5 )
6
7
8 type Object struct {
9 w *bytes.Buffer
10 writeComma bool
11 scratch *[]byte
12 }
13
14 func newObject(w *bytes.Buffer, scratch *[]byte) *Object {
15 w.WriteRune(leftBrace)
16 return &Object{w: w, scratch: scratch}
17 }
18
19 func (o *Object) writeKey(key string) {
20 escapeStringBytes(o.w, []byte(key))
21 o.w.WriteRune(colon)
22 }
23
24
25
26
27 func (o *Object) Key(name string) Value {
28 if o.writeComma {
29 o.w.WriteRune(comma)
30 } else {
31 o.writeComma = true
32 }
33 o.writeKey(name)
34 return newValue(o.w, o.scratch)
35 }
36
37
38 func (o *Object) Close() {
39 o.w.WriteRune(rightBrace)
40 }
41
View as plain text