...

Source file src/github.com/aws/smithy-go/encoding/json/object.go

Documentation: github.com/aws/smithy-go/encoding/json

     1  package json
     2  
     3  import (
     4  	"bytes"
     5  )
     6  
     7  // Object represents the encoding of a JSON Object type
     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  // Key adds the given named key to the JSON object.
    25  // Returns a Value encoder that should be used to encode
    26  // a JSON value type.
    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  // Close encodes the end of the JSON Object
    38  func (o *Object) Close() {
    39  	o.w.WriteRune(rightBrace)
    40  }
    41  

View as plain text