手動(dòng)json轉(zhuǎn)化之后強(qiáng)制類型轉(zhuǎn)化
{
"rating": {
"max": 10,
"average": 7.4,
"stars": "40",
"min": 0
},
"reviews_count": 301,
"wish_count": 15912,
"douban_site": "",
"year": "2009",
"images": {
"small": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p494268647.jpg",
"large": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p494268647.jpg",
"medium": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p494268647.jpg"
},
"alt": "https://movie.douban.com/subject/1764796/",
"id": "1764796",
"mobile_url": "https://movie.douban.com/subject/1764796/mobile",
"title": "機(jī)器人9號(hào)",
"do_count": null,
"share_url": "https://m.douban.com/movie/subject/1764796",
"seasons_count": null,
"schedule_url": "",
"episodes_count": null,
"countries": [
"美國(guó)"
],
"genres": [
"動(dòng)畫",
"冒險(xiǎn)",
"奇幻"
],
"collect_count": 74934,
"casts": [
{
"alt": "https://movie.douban.com/celebrity/1054395/",
"avatars": {
"small": "https://img1.doubanio.com/view/celebrity/s_ratio_celebrity/public/p51597.jpg",
"large": "https://img1.doubanio.com/view/celebrity/s_ratio_celebrity/public/p51597.jpg",
"medium": "https://img1.doubanio.com/view/celebrity/s_ratio_celebrity/public/p51597.jpg"
},
"name": "伊萊賈·伍德",
"id": "1054395"
},
{
"alt": "https://movie.douban.com/celebrity/1016673/",
"avatars": {
"small": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p33305.jpg",
"large": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p33305.jpg",
"medium": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p33305.jpg"
},
"name": "詹妮弗·康納利",
"id": "1016673"
},
{
"alt": "https://movie.douban.com/celebrity/1017907/",
"avatars": {
"small": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p55994.jpg",
"large": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p55994.jpg",
"medium": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p55994.jpg"
},
"name": "約翰·C·賴?yán)?,
"id": "1017907"
},
{
"alt": "https://movie.douban.com/celebrity/1036321/",
"avatars": {
"small": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p42033.jpg",
"large": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p42033.jpg",
"medium": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p42033.jpg"
},
"name": "克里斯托弗·普盧默",
"id": "1036321"
}
],
"current_season": null,
"original_title": "9",
"summary": "機(jī)器人9號(hào)(伊利亞?伍德 Elijah Wood 飾)突然醒來(lái),發(fā)現(xiàn)身邊的世界充滿危機(jī),四處殘敗,一片末世景象。9號(hào)帶著一個(gè)畫有三個(gè)奇怪符號(hào)的圓形物體逃到街上,幸遇發(fā)明家機(jī)器人2號(hào)(馬丁?蘭道 Martin Landau 飾)給自己裝上了聲音,但2號(hào)卻不幸被機(jī)器怪獸抓走。9號(hào)找到了老兵1號(hào)(克里斯托弗?普盧默 Christopher Plummer 飾)、機(jī)械工5號(hào)(約翰?雷利 John C. Reilly 飾)、瘋癲畫家6號(hào)(克里斯品?格拉夫 Crispin Glover 飾)和大力士8號(hào)(弗雷德?塔塔紹爾 Fred Tatasciore 飾)。9號(hào)與5號(hào)擅自出行援救2號(hào),危急時(shí)被女武士7號(hào)(詹妮佛?康納利 Jennifer Connelly 飾)救下,但無(wú)意中9號(hào)卻令終極機(jī)器獸復(fù)活。帶著自己從哪里來(lái)以及生存使命的問(wèn)題,9號(hào)決定想盡辦法制服機(jī)器獸,拯救全世界……?豆瓣",
"subtype": "movie",
"directors": [
{
"alt": "https://movie.douban.com/celebrity/1276787/",
"avatars": {
"small": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p1351678808.44.jpg",
"large": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p1351678808.44.jpg",
"medium": "https://img3.doubanio.com/view/celebrity/s_ratio_celebrity/public/p1351678808.44.jpg"
},
"name": "申·阿克",
"id": "1276787"
}
],
"comments_count": 9193,
"ratings_count": 60293,
"aka": [
"9:末世決戰(zhàn)",
"九",
"Number 9",
"機(jī)器人9號(hào)"
]
}
轉(zhuǎn)化為Map數(shù)組
List<Widget> casts = snap.data['casts']
.cast<Map<String, dynamic>>()
.map<Widget>((item) => new Column(
children: <Widget>[
new Image.network(item['avatars']['small']),
new Text(item['name'])
],
))
.toList();
拆解步驟
1. 先進(jìn)行類型轉(zhuǎn)換
2. 使用map 方法遍歷返回Iteration
map<Widget>((item){
return Widget
}) 或者
map<Widget>((item)=> new Widget)
3. 將Iteration轉(zhuǎn)化為L(zhǎng)ist<Widget>
iteraInstance.toList()
轉(zhuǎn)化為L(zhǎng)ist<String>遍歷
snap.data['genres'].cast<String>().map<Widget>((item) {
return new Text(
' ${item} ',
style: new TextStyle(
color: Colors.green,
fontWeight: FontWeight.w100,
fontSize: 18.0),
);
}).toList()
步驟同上只是這次轉(zhuǎn)為cast<String>()