@@ -8,7 +8,9 @@ class Generator {
8
8
String entityName;
9
9
Version version;
10
10
11
- Generator (this .jsonString, [this .entityName, this .version = Version .v0]);
11
+ Generator (this .jsonString, [this .entityName, this .version = Version .v0]) {
12
+ this .jsonString = convertJsonString (jsonString);
13
+ }
12
14
13
15
List <DefaultTemplate > templateList = [];
14
16
@@ -45,12 +47,14 @@ class Generator {
45
47
fieldList.forEach ((filed) {
46
48
if (filed is MapField ) {
47
49
// filed.typeString
48
- DefaultTemplate template = DefaultTemplate (srcJson: json.encode (filed.map), className: filed.typeString);
50
+ DefaultTemplate template = DefaultTemplate (
51
+ srcJson: json.encode (filed.map), className: filed.typeString);
49
52
templateList.add (template);
50
53
refreshTemplate (template);
51
54
} else if (filed is ListField ) {
52
55
if (filed.childIsObject) {
53
- DefaultTemplate template = DefaultTemplate (srcJson: json.encode (filed.list[0 ]), className: filed.typeName);
56
+ DefaultTemplate template = DefaultTemplate (
57
+ srcJson: json.encode (filed.list[0 ]), className: filed.typeName);
54
58
templateList.add (template);
55
59
refreshTemplate (template);
56
60
}
@@ -60,7 +64,8 @@ class Generator {
60
64
61
65
String get fileName => camelCase2UnderScoreCase (entityName);
62
66
63
- static const String importString = "import 'package:json_annotation/json_annotation.dart';" ;
67
+ static const String importString =
68
+ "import 'package:json_annotation/json_annotation.dart';" ;
64
69
65
70
String get header => """$importString
66
71
@@ -76,3 +81,30 @@ String camelCase2UnderScoreCase(String name) {
76
81
return "_" + str.toLowerCase ();
77
82
});
78
83
}
84
+
85
+ String convertJsonString (String jsonString) {
86
+ var numberReg = RegExp (r"[0-9]\.[0-9]+" );
87
+
88
+ //匹配小数数字正则
89
+ var allMatch = numberReg.allMatches (jsonString).toList ();
90
+
91
+ for (var i = 0 ; i < allMatch.length; i++ ) {
92
+ //是一个小数数字
93
+ var m = allMatch[i];
94
+ var s = m.group (0 );
95
+
96
+ // if (double.tryParse(s) is double) {
97
+ // // 说明是真实的小数
98
+ // // 这里直接匹配下一个
99
+ // print("$s is double");
100
+ // continue;
101
+ // }
102
+
103
+ // print("$s is int");
104
+
105
+ // 应该是double,但由于js的原因被识别成了整数数,这里对这种数据进行处理,将这里的最后一位从0替换为1
106
+ s = s.replaceRange (s.length - 1 , s.length, "5" );
107
+ jsonString = jsonString.replaceRange (m.start, m.end, s);
108
+ }
109
+ return jsonString;
110
+ }
0 commit comments