DefaultFieldsNamer implements trivial naming policy equivalent to encoding/json.
type DefaultFieldNamer struct{}
func (DefaultFieldNamer) GetJSONFieldName(t reflect.Type, f reflect.StructField) string
FieldNamer defines a policy for generating names for struct fields.
type FieldNamer interface { GetJSONFieldName(t reflect.Type, f reflect.StructField) string }
Generator generates the requested marshaler/unmarshalers.
type Generator struct {
// contains filtered or unexported fields
}
func NewGenerator(filename string) *Generator
NewGenerator initializes and returns a Generator.
func (g *Generator) Add(obj interface{})
Add requests to generate marshaler/unmarshalers and encoding/decoding funcs for the type of given object.
func (g *Generator) DisallowUnknownFields()
DisallowUnknownFields instructs not to skip unknown fields in json and return error.
func (g *Generator) NoStdMarshalers()
NoStdMarshalers instructs not to generate standard MarshalJSON/UnmarshalJSON methods (only the custom interface).
func (g *Generator) OmitEmpty()
OmitEmpty triggers `json=",omitempty"` behaviour by default.
func (g *Generator) Run(out io.Writer) error
Run runs the generator and outputs generated code to out.
func (g *Generator) SetBuildTags(tags string)
SetBuildTags sets build tags for the output file.
func (g *Generator) SetFieldNamer(n FieldNamer)
SetFieldNamer sets field naming strategy.
func (g *Generator) SetPkg(name, path string)
SetPkg sets the name and path of output package.
func (g *Generator) SimpleBytes()
SimpleBytes triggers generate output bytes as slice byte
func (g *Generator) SkipMemberNameUnescaping()
SkipMemberNameUnescaping instructs to skip member names unescaping to improve performance
func (g *Generator) UseLowerCamelCase()
UseLowerCamelCase sets lowerCamelCase field naming strategy.
func (g *Generator) UseSnakeCase()
UseSnakeCase sets snake_case field naming strategy.
LowerCamelCaseFieldNamer
type LowerCamelCaseFieldNamer struct{}
func (LowerCamelCaseFieldNamer) GetJSONFieldName(t reflect.Type, f reflect.StructField) string
SnakeCaseFieldNamer implements CamelCase to snake_case conversion for fields names.
type SnakeCaseFieldNamer struct{}
func (SnakeCaseFieldNamer) GetJSONFieldName(t reflect.Type, f reflect.StructField) string