首页 > 解决方案 > 如何在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()));
          }
        }
        )
    );
  }
}

标签: jsonflutterdart

解决方案


您可以使用一些外部工具来生成模型,例如quicktype 或官方文档文档中描述的任何方法


推荐阅读