[dart-gen] Support Null-safe and omitempty json tag (#3134)
This commit is contained in:
@@ -42,15 +42,29 @@ class {{.Name}} {
|
||||
{{range .Members}} required this.{{lowCamelCase .Name}},
|
||||
{{end}}}{{end}});
|
||||
factory {{.Name}}.fromJson(Map<String,dynamic> m) {
|
||||
return {{.Name}}({{range .Members}}
|
||||
{{lowCamelCase .Name}}: {{if isDirectType .Type.Name}}m['{{getPropertyFromMember .}}']
|
||||
{{else if isClassListType .Type.Name}}(m['{{getPropertyFromMember .}}'] as List<dynamic>).map((i) => {{getCoreType .Type.Name}}.fromJson(i)).toList()
|
||||
{{else}}{{.Type.Name}}.fromJson(m['{{getPropertyFromMember .}}']){{end}},{{end}}
|
||||
return {{.Name}}(
|
||||
{{range .Members}}
|
||||
{{lowCamelCase .Name}}: {{appendNullCoalescing .}}
|
||||
{{if isDirectType .Type.Name}}
|
||||
m['{{getPropertyFromMember .}}'] {{appendDefaultEmptyValue .Type.Name}}
|
||||
{{else if isClassListType .Type.Name}}
|
||||
((m['{{getPropertyFromMember .}}'] {{appendDefaultEmptyValue .Type.Name}}) as List<dynamic>).map((i) => {{getCoreType .Type.Name}}.fromJson(i)).toList()
|
||||
{{else}}
|
||||
{{.Type.Name}}.fromJson(m['{{getPropertyFromMember .}}']){{end}}
|
||||
,{{end}}
|
||||
);
|
||||
}
|
||||
Map<String,dynamic> toJson() {
|
||||
return { {{range .Members}}
|
||||
'{{getPropertyFromMember .}}': {{if isDirectType .Type.Name}}{{lowCamelCase .Name}}{{else if isClassListType .Type.Name}}{{lowCamelCase .Name}}.map((i) => i.toJson()){{else}}{{lowCamelCase .Name}}.toJson(){{end}},{{end}}
|
||||
'{{getPropertyFromMember .}}':
|
||||
{{if isDirectType .Type.Name}}
|
||||
{{lowCamelCase .Name}}
|
||||
{{else if isClassListType .Type.Name}}
|
||||
{{lowCamelCase .Name}}{{if isNullableType .Type.Name}}?{{end}}.map((i) => i.toJson())
|
||||
{{else}}
|
||||
{{lowCamelCase .Name}}{{if isNullableType .Type.Name}}?{{end}}.toJson()
|
||||
{{end}}
|
||||
,{{end}}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user