首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flutter复杂解析Json未定义的getter“List<Type>”

Flutter复杂解析Json未定义的getter“List<Type>”
EN

Stack Overflow用户
提问于 2021-01-31 03:44:45
回答 2查看 45关注 0票数 2

我正在尝试将一个复杂的json文件解析到我的应用程序中,我得到了一个错误:没有为类型'List‘定义getter 'name’。在我的路由列表中,我无法获得路由的名称,但可以获得其他所有内容。我不知道这是在哪里发生的,也不知道如何修复它。

我的代码:

代码语言:javascript
运行
复制
void openBottomSheet() {
showModalBottomSheet(
    context: context,
    builder: (context) {
      return FutureBuilder<DriverDataModel>(
        future: mongoApi.getMongoData(),
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            final driver = snapshot.data;
            return Container(
              child: ListView.builder(
                itemCount: driver.data.routes.length,
                itemBuilder: (BuildContext context, snapshot) {
                  return ListTile(
                    title: Text('${driver.data.routes.name}'),
                    leading: Icon(Icons.directions),
                    onTap: () {
                      drawPolyLine.cleanPolyline();
                      getCurrentLocation();
                      routesCoordinates.isInCourse(driver.data.routes);
                      Navigator.pop(context);
                    },
                  );
                },
              ),                
            );
          }
          return Container();
        },
      );
    });

Json响应:

代码语言:javascript
运行
复制
{

"success": true,
"data": {
    "_id": "600773ac1bde5d10e89511d1",
    "name": "Joselito",
    "truck": "5f640232ab8f032d18ce0137",
    "phone": "*************",
    "routes": [
        {
            "name": "Tere city",
            "week": [
                {
                    "short_name": "mon"
                }
            ],
            "coordinates": [
                {
                    "lat": -22.446938,
                    "lng": -42.982084
                },
                {
                    "lat": -22.434384,
                    "lng": -42.978511
                }
            ]
        }
    ],
    "createdAt": "2021-01-20T00:05:00.717Z",
    "updatedAt": "2021-01-20T00:05:00.717Z",
    "__v": 0
}

我使用https://app.quicktype.io/创建了我的模型并成功地进行了解析。然而,当我试图在我的路由列表中打印我的路由的名称时,得到了那个getter错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-31 04:14:24

@fartem几乎回答对了,除非你需要通过索引动态访问你的项目(不仅仅是第一个项目)。在使用ListView.builder中的函数itemBuilder的代码行中,而不是

itemBuilder: (BuildContext context, snapshot) {

我建议使用

itemBuilder: (BuildContext context, i) {

因为第二个参数是一个索引。因此,为了能够获得列表中每个项目的名称,您必须使用该索引:

title: Text('${driver.data.routes[i].name}'),

诸若此类。

票数 1
EN

Stack Overflow用户

发布于 2021-01-31 03:59:12

Routes是一个数组,您可以尝试通过driver.data.routes[0].name调用它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65972393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档