错误类型'_InternalLinkedHashMap <String,dynamic>'不是'String'类型的子类型

时间:2020-10-19 05:32:05

标签: json api flutter asynchronous dart

尝试解析JSON并将其显示在文本中而不是listview时出现错误。

下面是我的JSON结构。

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

这是我的Future 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 个答案:

答案 0 :(得分:1)

您可以尝试将数据的运行时间从_InternalLinkedHashMap转换为精确列表。

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

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

编辑1

为我工作。试试这个

new Map<String, dynamic>.from(snapshot.value);