Flutter中的json转对象
网上有好多json转对象的方法:
在线生成的:https://javiercbk.github.io/json_to_dart/
弊端:每次都要打开网页去生成,尤其是公司网不好的时候,急死;
插件生成的:插件名:FlutterJsonBeanFactory
弊端:不知道没弄明白还是根本没法设置,我只想要一个简单的文件,不要什么继承.
因为子类型总是重复生成.
以下我自己解析json内容生成对象[优化后]
只涉及到自己用到的类型,如有其他,读者可随时更改
import 'dart:convert';
import 'dart:io';
import 'package:flutter_test/flutter_test.dart';
void main() {
test('生成实体数据', () async {
Future<void> write(String fileName, String content) async {
File indexFile = File(fileName);
if (!await indexFile.exists()) {
indexFile.createSync();
} else {
print("重写:$indexFile");
}
IOSink out = indexFile.openWrite();
out.write(content);
}
String jsonFile = "models.json"; // json文件
String jsonData = await File(jsonFile).readAsString();
Map<String, dynamic> entities = convert.json.decode(jsonData);
String filePath = entities.remove('path') ?? "lib/model"; // 生成目录,不带/后缀
String libraryName = entities.remove('library') ?? "xgcs_model"; // 模块名称
String entitySuffix = entities.remove('suffix') ?? "Entity"; // 实体后缀
File libraryFile = File("$filePath/index.dart");
await libraryFile.parent.create();
Map<String, String> keyClassNameMap = {};
for (String fileName in entities.keys) {
Map<String, dynamic> data = entities[fileName];
String className = fileName.substring(0, 1).toUpperCase() + fileName.substrin

本文介绍了一种在Flutter中将JSON数据转换为实体类的方法,避免了使用在线工具和插件带来的不便。通过解析JSON内容并自动生成实体类代码,提高了开发效率。
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



