“address2”
]
}
So in this address.json, we have city
entity that has a simple String
value, but streets
is an array of String
.
据我所知,Dart没有数组数据类型,但是有 a List 所以这里streets
是一个List<String>
。
现在我们必须检查Rule#1和Rule#2。这绝对是一 map 因为它以花括号开头。. streets
is still a List
though, 但我们稍后会担心。
所以address_model.dart
最初看起来像这样
class Address {
final String city;
final List streets;
Address({
this.city,
this.streets
});
}
现在,由于这是一amap, 因此我们的Address.fromJson
方法将仍然具有一个Map<String, dynamic>
参数。
factory Address.fromJson(Map<String, dynamic> parsedJson) {
return new Address(
city: parsedJson[‘city’],
streets: parsedJson[‘streets’],
);
}
现在,address_services.dart
通过添加我们上面提到的3个片段来构建。必须记住要放置正确的文件名和方法名。示例项目已经*address_services.dart*
为您构建。
现在,当您运行此命令时,您将得到一个不错的小错误。:/
type ‘List’ is not a subtype of type ‘List’
我告诉你,这些错误几乎都发生在我使用Dart开发的每个步骤中。而且您也将拥有它们。因此,让我解释一下这意味着什么。我们正在请求一个,List<String>
但是却收到一个,List<dynamic>
因为我们的应用程序尚无法识别类型。
因此,我们必须将其明确转换为 List<String>
var streetsFromJson = parsedJson[‘streets’];
List streetsList = new List.from(streetsFromJson);
在这里,首先我们将变量映射streetsFromJson
到streets
实体。streetsFromJson
还是一个List<dynamic>
。现在,我们明确地创建一个新的List<String> streetsList
包含所有元素的streetsFromJson
。
在此处检查更新的方法。_现在注意return语句。
现在,您可以运行此程序,_*address_services.dart*
它将完美运行。
==========================================================================
现在,如果我们有一个来自shape.json的嵌套结构,该怎么办
{
“shape_name”:“rectangle”,
“property”:{
“width”:5.0,
“breadth”:10.0
}
}
在这里,<