json - 如何在flutter中解析嵌套的json
问题描述
我有嵌套的 json,我想在其中解析 worksheetData 并在单独的卡片中显示 worksheetdata 列表。我尝试过使用在线工具解析,但是当我打印数据时,它会抛出一个错误,称为“类型‘列表’不是‘地图’类型的子类型”
#Update 下面是我收到数据错误 Home.dart 的 home.dart 文件
class WorkSheet extends StatefulWidget {
const WorkSheet({Key key}) : super(key: key);
@override
_WorkSheetState createState() => new _WorkSheetState();
}
class _WorkSheetState extends State<WorkSheet> {
Future<String> loadSheetDataFromAssets() async {
return await DefaultAssetBundle.of(context)
.loadString('assets/example.json');
}
Future loadSheetData() async {
String jsonString = await loadSheetDataFromAssets();
final jsonResponse = json.decode(jsonString);
SheetData sheetData = new SheetData.fromJson(jsonResponse);
print('PName : ${sheetData.projectName}');
print('Worksheet : ${sheetData.worksheetData}');
print(sheetData);
}
@override
void initState() {
super.initState();
loadSheetData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Work sheet data'),
),
body: FutureBuilder(
future: loadSheetData(),
builder: (context, snapshot){
if(snapshot.data == null){
return Center(child: Text(snapshot.error));
}else{
return Card(child: Text(snapshot.data.toString()));
}
}
)
);
}
}
解决方案
您可以使用一些外部工具来生成模型,例如quicktype 或官方文档文档中描述的任何方法
推荐阅读
- javascript - 部署错误。[info] 函数加载用户代码失败。错误消息:无法加载文件 index.js 中的代码
- microservices - 如何开始使用微服务和 Symfony
- scroll - 在kivy中禁用弹跳滚动效果
- javascript - 如何将 jQuery addClass 代码转换为 Angular
- django - 从 django 中的模型继承字段
- spring - 查询未返回唯一结果:4;嵌套异常是 javax.persistence.NonUniqueResultException:查询没有返回唯一结果:4
- javascript - 如何从客户端 Javascript 文件中访问 Express app.locals 变量?
- mysql - 如果下一个值与当前值相同,如何从 MySQL 分组 concat 并且不重复相同的值
- php - 登录时如何向用户回显甜蜜警报消息
- c++ - 1 到 100 之间的素数列表