forked from lxm_flutter/json2dart
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
88a48be157 |
@@ -46,14 +46,18 @@ class Generator {
|
|||||||
var fieldList = template.fieldList;
|
var fieldList = template.fieldList;
|
||||||
fieldList.forEach((filed) {
|
fieldList.forEach((filed) {
|
||||||
if (filed is MapField) {
|
if (filed is MapField) {
|
||||||
DefaultTemplate template = DefaultTemplate(
|
DefaultTemplate template = DefaultTemplate(srcJson: json.encode(filed.map), className: filed.typeString);
|
||||||
srcJson: json.encode(filed.map), className: filed.typeString);
|
if (version == Version.v1) {
|
||||||
|
template = V1Template(srcJson: json.encode(filed.map), className: filed.typeString);
|
||||||
|
}
|
||||||
templateList.add(template);
|
templateList.add(template);
|
||||||
refreshTemplate(template);
|
refreshTemplate(template);
|
||||||
} else if (filed is ListField) {
|
} else if (filed is ListField) {
|
||||||
if (filed.childIsObject) {
|
if (filed.childIsObject) {
|
||||||
DefaultTemplate template = DefaultTemplate(
|
DefaultTemplate template = DefaultTemplate(srcJson: json.encode(filed.list[0]), className: filed.typeName);
|
||||||
srcJson: json.encode(filed.list[0]), className: filed.typeName);
|
if (version == Version.v1) {
|
||||||
|
template = V1Template(srcJson: json.encode(filed.list[0]), className: filed.typeName);
|
||||||
|
}
|
||||||
templateList.add(template);
|
templateList.add(template);
|
||||||
refreshTemplate(template);
|
refreshTemplate(template);
|
||||||
}
|
}
|
||||||
@@ -63,8 +67,7 @@ class Generator {
|
|||||||
|
|
||||||
String get fileName => camelCase2UnderScoreCase(entityName);
|
String get fileName => camelCase2UnderScoreCase(entityName);
|
||||||
|
|
||||||
static const String importString =
|
static const String importString = "import 'package:json_annotation/json_annotation.dart';";
|
||||||
"import 'package:json_annotation/json_annotation.dart';";
|
|
||||||
|
|
||||||
String get header => """$importString
|
String get header => """$importString
|
||||||
|
|
||||||
|
|||||||
@@ -108,27 +108,22 @@ class DefaultTemplate extends Template {
|
|||||||
if (this is ListTemplate) {
|
if (this is ListTemplate) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
return ListTemplate(
|
return ListTemplate(srcJson: srcJson, className: className, delegateTemplate: this);
|
||||||
srcJson: srcJson, className: className, delegateTemplate: this);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ListTemplate extends DefaultTemplate {
|
class ListTemplate extends DefaultTemplate {
|
||||||
Template delegateTemplate;
|
Template delegateTemplate;
|
||||||
|
|
||||||
ListTemplate(
|
ListTemplate({String srcJson, String className = "Entity", this.delegateTemplate}) : super(className: className, srcJson: srcJson);
|
||||||
{String srcJson, String className = "Entity", this.delegateTemplate})
|
|
||||||
: super(className: className, srcJson: srcJson);
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String declare() {
|
String declare() {
|
||||||
return _declareListMethod() + "\n" + delegateTemplate?.declare() ??
|
return _declareListMethod() + "\n" + delegateTemplate?.declare() ?? super.declare();
|
||||||
super.declare();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String _declareListMethod() {
|
String _declareListMethod() {
|
||||||
var listMethod =
|
var listMethod = """List<$className> get${className}List(List<dynamic> list){
|
||||||
"""List<$className> get${className}List(List<dynamic> list){
|
|
||||||
List<$className> result = [];
|
List<$className> result = [];
|
||||||
list.forEach((item){
|
list.forEach((item){
|
||||||
result.add($className.fromJson(item));
|
result.add($className.fromJson(item));
|
||||||
@@ -159,13 +154,11 @@ class ListTemplate extends DefaultTemplate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Field> get fieldList =>
|
List<Field> get fieldList => FieldHelper(json.encode(json.decode(srcJson)[0])).getFields();
|
||||||
FieldHelper(json.encode(json.decode(srcJson)[0])).getFields();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class V1Template extends DefaultTemplate {
|
class V1Template extends DefaultTemplate {
|
||||||
V1Template({String srcJson, String className = "Entity"})
|
V1Template({String srcJson, String className = "Entity"}) : super(className: className, srcJson: srcJson);
|
||||||
: super(className: className, srcJson: srcJson);
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String interface() => "";
|
String interface() => "";
|
||||||
@@ -175,8 +168,7 @@ class V1Template extends DefaultTemplate {
|
|||||||
var result = StringBuffer();
|
var result = StringBuffer();
|
||||||
result.writeln(super.method());
|
result.writeln(super.method());
|
||||||
result.writeln();
|
result.writeln();
|
||||||
result.write(
|
result.write(" Map<String, dynamic> toJson() => _\$${className}ToJson(this);");
|
||||||
" Map<String, dynamic> toJson() => _\$${className}ToJson(this);");
|
|
||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user