func Marshal(v Marshaler) ([]byte, error)
Marshal returns data as a single byte slice. Method is suboptimal as the data is likely to be copied from a chain of smaller chunks.
func MarshalToHTTPResponseWriter(v Marshaler, w http.ResponseWriter) (started bool, written int, err error)
MarshalToHTTPResponseWriter sets Content-Length and Content-Type headers for the http.ResponseWriter, and send the data to the writer. started will be equal to false if an error occurred before any http.ResponseWriter methods were actually invoked (in this case a 500 reply is possible).
func MarshalToWriter(v Marshaler, w io.Writer) (written int, err error)
MarshalToWriter marshals the data to an io.Writer.
func Unmarshal(data []byte, v Unmarshaler) error
Unmarshal decodes the JSON in data into the object.
func UnmarshalFromReader(r io.Reader, v Unmarshaler) error
UnmarshalFromReader reads all the data in the reader and decodes as JSON into the object.
Marshaler is an easyjson-compatible marshaler interface.
type Marshaler interface { MarshalEasyJSON(w *jwriter.Writer) }
MarshalerUnmarshaler is an easyjson-compatible marshaler/unmarshaler interface.
type MarshalerUnmarshaler interface { Marshaler Unmarshaler }
Optional defines an undefined-test method for a type to integrate with 'omitempty' logic.
type Optional interface { IsDefined() bool }
RawMessage is a raw piece of JSON (number, string, bool, object, array or null) that is extracted without parsing and output as is during marshaling.
type RawMessage []byte
func (v *RawMessage) IsDefined() bool
IsDefined is required for integration with omitempty easyjson logic.
func (v *RawMessage) MarshalEasyJSON(w *jwriter.Writer)
MarshalEasyJSON does JSON marshaling using easyjson interface.
func (v RawMessage) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler interface.
func (v *RawMessage) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON does JSON unmarshaling using easyjson interface.
func (v *RawMessage) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler interface.
UnknownFieldsProxy implemets UnknownsUnmarshaler and UnknownsMarshaler use it as embedded field in your structure to parse and then serialize unknown struct fields
type UnknownFieldsProxy struct {
// contains filtered or unexported fields
}
func (s UnknownFieldsProxy) MarshalUnknowns(out *jwriter.Writer, first bool)
func (s *UnknownFieldsProxy) UnmarshalUnknown(in *jlexer.Lexer, key string)
UnknownsMarshaler provides a method to write additional struct fields
type UnknownsMarshaler interface { MarshalUnknowns(w *jwriter.Writer, first bool) }
UnknownsUnmarshaler provides a method to unmarshal unknown struct fileds and save them as you want
type UnknownsUnmarshaler interface { UnmarshalUnknown(in *jlexer.Lexer, key string) }
Marshaler is an easyjson-compatible unmarshaler interface.
type Unmarshaler interface { UnmarshalEasyJSON(w *jlexer.Lexer) }
Name | Synopsis |
---|---|
.. | |
bootstrap | Package bootstrap implements the bootstrapping logic: generation of a .go file to launch the actual generator and launching the generator itself. |
buffer | Package buffer implements a buffer for serialization, consisting of a chain of []byte-s to reduce copying and to allow reuse of individual chunks. |
easyjson | |
gen | |
jlexer | Package jlexer contains a JSON lexer implementation. |
jwriter | Package jwriter contains a JSON writer. |
opt | |
optional | |
parser | |
tests |