编辑:在我再次检查后,因为这是列表中对象中的一个字段,结果在列表中的某处,一个对象确实有 "data": {}
关闭的问题。感谢您的帮助。
我有一个包含空数组内容的 json 字段:
{
"data": [ ]
}
问题是当我试图将它放入列表时,它会出现异常。
List<dynamic> result = json["data"];
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<dynamic>'
当我看到它是“内部链接 HashMap ”时,我想也许我可以使用一个映射。所以我将接收器类型更改为 Map。
Map<String, dynamic> result = json["data"];
type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>'
为什么会这样?
我最终可以解决这个问题的唯一方法是创建一个类型推断变量作为中间变量:
var temp = json["data"];
print("temp's runtime type: ${temp.runtimeType}"); // List<dynamic>
List<dynamic> result = temp; // works
我知道现在可以使用变通方法解决这个问题,但我只想知道为什么上面的尝试是错误的,以及如何直接将 json 字段内容分配给显式类型的变量。
最佳答案
首先,您只需检查您的数据是否为空,然后将值分配给您的 map 。
Map<String, dynamic> result;
if(json["data"]!=null && json["data"].isNotEmpty){
result = json["data"];
}
关于json - 如何在 Flutter 中转换 json 空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70120240/