Add "omitempty" to json struct tag if optional
This commit is contained in:
parent
a640ba04bc
commit
e1d654c3ba
1 changed files with 15 additions and 1 deletions
|
@ -72,12 +72,26 @@ func schemaType(schema *jsonschema.Schema) jsonschema.Type {
|
|||
}
|
||||
}
|
||||
|
||||
func isRequired(schema *jsonschema.Schema, propName string) bool {
|
||||
for _, name := range schema.Required {
|
||||
if name == propName {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func generateStruct(schema *jsonschema.Schema, root *jsonschema.Schema) jen.Code {
|
||||
var fields []jen.Code
|
||||
for name, prop := range schema.Properties {
|
||||
id := formatId(name)
|
||||
required := isRequired(schema, name)
|
||||
t := generateSchemaType(&prop, root)
|
||||
tags := map[string]string{"json": name}
|
||||
jsonTag := name
|
||||
if !required {
|
||||
jsonTag += ",omitempty"
|
||||
}
|
||||
tags := map[string]string{"json": jsonTag}
|
||||
fields = append(fields, jen.Id(id).Add(t).Tag(tags))
|
||||
}
|
||||
return jen.Struct(fields...)
|
||||
|
|
Loading…
Reference in a new issue