forked from lxm_flutter/json2dart
Merge branch 'master' of https://github.com/CaiJingLong/json2dart
This commit is contained in:
21
README.md
21
README.md
@@ -2,13 +2,24 @@
|
|||||||
|
|
||||||
一个网页版本的json转dart库
|
一个网页版本的json转dart库
|
||||||
|
|
||||||
不同于https://github.com/debuggerx01/JSONFormat4Flutter的是 这个是为了json_serializable创建的
|
## 说明
|
||||||
页面较简陋
|
|
||||||
|
不同于https://github.com/debuggerx01/JSONFormat4Flutter 的是:这个是为了json_serializable创建的
|
||||||
|
页面较简陋,功能完善😊
|
||||||
|
|
||||||
|
json_serializable 可以参考flutter官网json部分 [flutter](https://flutter.io/json)
|
||||||
|
|
||||||
|
项目的展示地址: https://caijinglong.github.io/json2dart/
|
||||||
|
|
||||||
|
项目使用dart web开发
|
||||||
|
## 说明
|
||||||
|
主体功能完结,有需要修改的地方欢迎留言
|
||||||
|
|
||||||
|
|
||||||
## todo
|
```
|
||||||
1. 格式化代码:完成
|
dart --version
|
||||||
2. 编写格式化相关的逻辑
|
Dart VM version: 2.0.0-dev.69.5 (Tue Jul 31 15:05:14 2018 +0200) on "macos_x64"
|
||||||
|
```
|
||||||
|
|
||||||
## license
|
## license
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ class Generator {
|
|||||||
|
|
||||||
void refreshTemplate(DefaultTemplate template) {
|
void refreshTemplate(DefaultTemplate template) {
|
||||||
var fieldList = template.fieldList;
|
var fieldList = template.fieldList;
|
||||||
bool needRefresh = false;
|
|
||||||
fieldList.forEach((filed) {
|
fieldList.forEach((filed) {
|
||||||
if (filed is MapField) {
|
if (filed is MapField) {
|
||||||
// filed.typeString
|
// filed.typeString
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ bool useJsonKey = true;
|
|||||||
|
|
||||||
bool isCamelCase = true;
|
bool isCamelCase = true;
|
||||||
|
|
||||||
|
var downloadFileName = "";
|
||||||
|
|
||||||
const defaultValue = """{
|
const defaultValue = """{
|
||||||
"body": "",
|
"body": "",
|
||||||
"data": [1],
|
"data": [1],
|
||||||
@@ -45,6 +47,7 @@ void main() {
|
|||||||
|
|
||||||
InputElement eJsonKey = querySelector("#use_json_key");
|
InputElement eJsonKey = querySelector("#use_json_key");
|
||||||
InputElement eCamelCase = querySelector("#camelCase");
|
InputElement eCamelCase = querySelector("#camelCase");
|
||||||
|
TextAreaElement result = querySelector("#result");
|
||||||
|
|
||||||
void onJsonKeyChange() {
|
void onJsonKeyChange() {
|
||||||
useJsonKey = eJsonKey.checked;
|
useJsonKey = eJsonKey.checked;
|
||||||
@@ -78,12 +81,27 @@ void main() {
|
|||||||
refreshData();
|
refreshData();
|
||||||
|
|
||||||
querySelector("#copy").onClick.listen((event) {
|
querySelector("#copy").onClick.listen((event) {
|
||||||
TextAreaElement result = querySelector("#result");
|
|
||||||
result.focus();
|
result.focus();
|
||||||
result.setSelectionRange(0, result.textLength);
|
result.setSelectionRange(0, result.textLength);
|
||||||
document.execCommand("copy", null, "");
|
document.execCommand("copy", null, "");
|
||||||
result.blur();
|
result.blur();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ButtonElement saveButton = querySelector("#save");
|
||||||
|
saveButton.onClick.listen((event) async {
|
||||||
|
Blob blob = Blob([result.value]);
|
||||||
|
// FileSystem _filesystem =
|
||||||
|
// await window.requestFileSystem(1024 * 1024, persistent: false);
|
||||||
|
// FileEntry fileEntry = await _filesystem.root.createFile('dart_test.csv');
|
||||||
|
// FileWriter fw = await fileEntry.createWriter();
|
||||||
|
// fw.write(blob);
|
||||||
|
// File file = await fileEntry.file();
|
||||||
|
AnchorElement saveLink = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
|
||||||
|
saveLink.href = Url.createObjectUrlFromBlob(blob);
|
||||||
|
// saveLink.type = "download";
|
||||||
|
saveLink.download = downloadFileName;
|
||||||
|
saveLink.click();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void refreshData() {
|
void refreshData() {
|
||||||
@@ -107,6 +125,7 @@ void refreshData() {
|
|||||||
var generator = Generator(string, entityClassName);
|
var generator = Generator(string, entityClassName);
|
||||||
var dartCode = generator.makeDartCode();
|
var dartCode = generator.makeDartCode();
|
||||||
var dartFileName = ("${generator.fileName}.dart");
|
var dartFileName = ("${generator.fileName}.dart");
|
||||||
|
downloadFileName = dartFileName;
|
||||||
querySelector("#file_name").text = "应该使用的文件名为: $dartFileName";
|
querySelector("#file_name").text = "应该使用的文件名为: $dartFileName";
|
||||||
|
|
||||||
result.value = dartCode;
|
result.value = dartCode;
|
||||||
|
|||||||
@@ -9,7 +9,11 @@ environment:
|
|||||||
|
|
||||||
#dependencies:
|
#dependencies:
|
||||||
# path: ^1.4.1
|
# path: ^1.4.1
|
||||||
|
dependencies:
|
||||||
|
# Your other regular dependencies here
|
||||||
|
json_annotation: ^0.2.3
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
build_runner: ^0.9.0
|
build_runner: ^0.9.0
|
||||||
build_web_compilers: ^0.4.0
|
build_web_compilers: ^0.4.0
|
||||||
|
json_serializable: ^0.5.4
|
||||||
@@ -3,10 +3,10 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta name="scaffolded-by" content="https://github.com/google/stagehand"/>
|
<meta name="scaffolded-by" content="https://github.com/google/stagehand" />
|
||||||
<title>hello_world</title>
|
<title>hello_world</title>
|
||||||
<link rel="stylesheet" href="styles.css">
|
<link rel="stylesheet" href="styles.css">
|
||||||
<link rel="icon" href="favicon.ico">
|
<link rel="icon" href="favicon.ico">
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div id="input" class="textarea">
|
<div id="input" class="textarea">
|
||||||
<div class="top">
|
<div class="top">
|
||||||
将json粘贴至左边
|
将json粘贴至左边
|
||||||
@@ -29,16 +29,21 @@
|
|||||||
<div class="top"></div>
|
<div class="top"></div>
|
||||||
<div class="result_title">
|
<div class="result_title">
|
||||||
类名称
|
类名称
|
||||||
<input id="out_entity_name"/>
|
<input id="out_entity_name" />
|
||||||
<input type="checkbox" id="use_json_key"/><span id="check_label">jsonKey annotation</span>
|
<input type="checkbox" id="use_json_key" />
|
||||||
<input type="checkbox" id="camelCase"/><span id="camelCaseLabel">use camelCase</span>
|
<span id="check_label">jsonKey annotation</span>
|
||||||
|
<input type="checkbox" id="camelCase" />
|
||||||
|
<span id="camelCaseLabel">use camelCase</span>
|
||||||
</div>
|
</div>
|
||||||
<div id="file_name"></div>
|
<div id="file_name"></div>
|
||||||
<textarea id="result" title="结果"></textarea>
|
<textarea id="result" title="结果"></textarea>
|
||||||
<div><button id="copy">复制</button></div>
|
<div>
|
||||||
|
<button id="copy">复制</button>
|
||||||
|
<button id="save">下载</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
Reference in New Issue
Block a user