forked from lxm_flutter/json2dart
update
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import 'package:json2dart_serialization/template.dart';
|
||||
|
||||
class Generator {
|
||||
String jsonString;
|
||||
String fileName;
|
||||
Generator(this.jsonString, this.fileName);
|
||||
|
||||
String makeDartCode() {
|
||||
Template template = DefaultTemplate();
|
||||
return jsonString;
|
||||
}
|
||||
|
||||
static const String importString = "import 'package:json_annotation/json_annotation.dart';";
|
||||
|
||||
String get header => """$importString
|
||||
part $fileName.g.dart;""";
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
abstract class Template {
|
||||
String declare();
|
||||
|
||||
String constructor();
|
||||
|
||||
String field();
|
||||
|
||||
String method();
|
||||
|
||||
String end();
|
||||
}
|
||||
|
||||
class DefaultTemplate extends Template {
|
||||
@override
|
||||
String constructor() {
|
||||
// TODO: implement constructor
|
||||
}
|
||||
|
||||
@override
|
||||
String declare() {
|
||||
// TODO: implement declare
|
||||
}
|
||||
|
||||
@override
|
||||
String end() {
|
||||
// TODO: implement end
|
||||
}
|
||||
|
||||
@override
|
||||
String field() {
|
||||
// TODO: implement field
|
||||
}
|
||||
|
||||
@override
|
||||
String method() {
|
||||
// TODO: implement method
|
||||
}
|
||||
}
|
||||
|
||||
String createCode(Template template) {
|
||||
var code = """${template.declare()}
|
||||
${template.field()}
|
||||
${template.constructor()}
|
||||
|
||||
${template.method()}
|
||||
|
||||
${template.end()}
|
||||
""";
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="scaffolded-by" content="https://github.com/google/stagehand">
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<meta name="scaffolded-by" content="https://github.com/google/stagehand"/>
|
||||
<title>hello_world</title>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
<link rel="icon" href="favicon.ico">
|
||||
@@ -20,14 +20,14 @@
|
||||
<div class="top">
|
||||
将json粘贴至左边
|
||||
</div>
|
||||
<textarea id="json"></textarea>
|
||||
<textarea id="json" title="json字符串"></textarea>
|
||||
<div>
|
||||
<button id="format">点击</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="output" class="textarea">
|
||||
<div class="top"></div>
|
||||
<textarea id="result"></textarea>
|
||||
<textarea id="result" title="结果"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,18 +1,24 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:html';
|
||||
|
||||
import 'package:json2dart_serialization/generator.dart';
|
||||
|
||||
void main() {
|
||||
querySelector("#format").onClick.listen((event) {
|
||||
TextAreaElement e = querySelector("#json");
|
||||
var string = e.value;
|
||||
var pretty = formatJson(string);
|
||||
e.value = pretty;
|
||||
|
||||
var generator = Generator(string, 'test.dart');
|
||||
var dartCode = generator.makeDartCode();
|
||||
TextAreaElement result = querySelector("#result");
|
||||
result.value = dartCode;
|
||||
});
|
||||
}
|
||||
|
||||
String formatJson(String jsonString) {
|
||||
var map = json.decode(jsonString);
|
||||
var prettyStringList = JsonUtf8Encoder(" ").convert(map);
|
||||
var prettyString = String.fromCharCodes(prettyStringList);
|
||||
var prettyString = JsonEncoder.withIndent(" ").convert(map);
|
||||
return prettyString;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user