json - Flutter(Dart) - 如何从列表中的列表中读取?
问题描述
所以我有这种格式的数据:
List users = [
{
"id": "p1",
"name": "John Doe",
"age": "44",
"imageUrl": [
{
"assets/images/anastasia-vityukova-unsplash-blackandwhiteimage.png",
"assets/images/anastasia-vityukova-unsplash.png",
}
],
"profession": "Financial Consultant"
},
{
"id": "p2",
"name": "John Doe2",
"age": "42",
"imageUrl": [
{
"assets/images/good-faces-hiba-unsplash-blackandwhiteimage.png",
"assets/images/good-faces-hiba-unsplash.jpg",
}
],
"profession": "Financial Consultant"
},
];
如何阅读 imageUrls?
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(lstUsers[index]["imageUrl"][0]),
fit: BoxFit.cover),
),
解决方案
正如错误所说,Dart 将该字段视为 Set{}
或更具体地视为LinkedHashSet
. 集合不实现[]
运算符,但您可以使用方法访问其元素elementAt
。
lstUsers[0]["imageUrl"][0].elementAt(1)
直到lstUsers[0]["imageUrl"][0]
您选择了数组中的第一个元素,但请注意,数组不仅由字符串组成,而且是一个包含字符串的集合。
[{ "assets/images/anastasia-vityukova-unsplash-blackandwhiteimage.png",
"assets/images/anastasia-vityukova-unsplash.png", }]
这就是你必须用来.elementAt()
访问字符串的原因。我会建议您是否有能力放下{}
琴弦,以便更容易访问。或者甚至更好地创建管理 JSON 的序列化和反序列化的类。一个不错的起点是quicktype。
推荐阅读
- ns2 - 不同能量的节点
- c - C程序-分段错误-popen:打开的文件太多-sh:0:管道调用失败
- html - HTML 格式的图片
- html - 我如何使用引导程序的轮播,这样当用户从幻灯片 1 移动到幻灯片 2 时它不会改变高度
- java - Vaadin Webapp 的 Favicon
- flutter - 如何将选定的图像保存到资产颤振网络
- python - AWS EBCLI 设置,在 /home/ 中找不到 virtualenv
/.pyenv/versions/3.7.2/bin/virtualenv - c# - 如何使用反射在泛型参数中传递类型?
- github - 如何导航页面的 GitHub 存储库?
- php - PHP - 最大的三重产品解决方案