From 99e39043df204d16fd08177ded1a41827f159dd2 Mon Sep 17 00:00:00 2001 From: Caijinglong Date: Mon, 6 Aug 2018 18:03:40 +0800 Subject: [PATCH] update --- lib/generator.dart | 17 ++++++++++++++++ lib/template.dart | 50 ++++++++++++++++++++++++++++++++++++++++++++++ web/index.html | 12 +++++------ web/main.dart | 10 ++++++++-- 4 files changed, 81 insertions(+), 8 deletions(-) diff --git a/lib/generator.dart b/lib/generator.dart index e69de29..a071d93 100644 --- a/lib/generator.dart +++ b/lib/generator.dart @@ -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;"""; +} diff --git a/lib/template.dart b/lib/template.dart index e69de29..2a8cb60 100644 --- a/lib/template.dart +++ b/lib/template.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; +} diff --git a/web/index.html b/web/index.html index 0bd01e5..dd9d0a1 100644 --- a/web/index.html +++ b/web/index.html @@ -3,10 +3,10 @@ - - - - + + + + hello_world @@ -20,14 +20,14 @@
将json粘贴至左边
- +
- +
diff --git a/web/main.dart b/web/main.dart index 882c545..92ee41f 100644 --- a/web/main.dart +++ b/web/main.dart @@ -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; }