当前位置: 首页 > 知识库问答 >
问题:

错误类型“\u InternalLinkedHashMap”不是“String”类型的子类型

韦修文
2023-03-14

我有一个错误,当试图解析我的JSON并显示在文本中,而不是作为一个listview

下面是我的JSON结构。

{
"status": "success",
    "data": {
            "id": 5,
            "name": afri,
            "class": 3c'
            },
    "message": "Success"
}

这是我的未来API异步。

Future<Map> getData() async {
var response = await http.get(
    'url');
return json.decode(response.body) as Map<String, dynamic>;
}

这是我显示JSON的代码。

Container(
          child: FutureBuilder<Map>(
            future: getData(),
            builder: (context, snapshot) {
              Map<String, dynamic> data = jsonDecode(snapshot.data["data"]);
              return Card(
                child: Container(
                  padding: EdgeInsets.all(8),
                  color: Colors.red,
                  child: Text(
                    data['port_website'],
                    style: TextStyle(color: Colors.white, fontSize: 24),
                  ),
                ),
              );
            },
          ),
        ),

当我试图获取数据时,我得到了这样的错误。

type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'

我应该修复哪个代码?

共有1个答案

孟浩然
2023-03-14

您可以尝试将\u InternalLinkedHashMap中的数据运行时转换为精确的列表。

您可以使用List.form来实现它。

final _data = List<dynamic>.from(
  data.map<dynamic>(
    (dynamic item) => item,
  ),
);

编辑1

为我工作。试试这个

新建地图

 类似资料: