我尝试将资产中拥有的json中的数据传递给某些小部件,但由于json实际上是地图列表,因此我不知道如何操作。感谢您在这方面的帮助。我附上主要的小部件和json代码。在第一列中,“文本”和“图像”分别传递项目名和图像(资产/ $ {image +})。
在这种情况下,我需要知道如何转换数据,以便可以在小部件中使用它。
Swiper(
itemHeight: media.height * 0.4,
itemWidth: media.width * .6,
layout: SwiperLayout.TINDER,
itemCount: 39,
itemBuilder: (BuildContext context, int index){
return Container(
decoration: BoxDecoration(
color: Colors.orange,
border: Border.all(color: Color(0xFF858585)),
borderRadius: BorderRadius.circular(20),
),
child: Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: Text('Familia Arkani', style: TextStyle(fontSize: 18),),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Image.asset('assets/arkani.png', height: 60, width: 60,),
),
SizedBox(height: 20,),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Column(
children: <Widget>[
Image.asset('pray.png', height: 30, width: 30,),
Padding(
padding: const EdgeInsets.only(top:5.0),
child: Text('Orar'),
),
Switch(
value: isOrar,
onChanged: (value){
setState((){
isOrar = value;
});
},
)
],
),
Column(
children: <Widget>[
Image.asset('give.png', height: 30, width: 30,),
Padding(
padding: const EdgeInsets.only(top:5.0),
child: Text('Ofrendar'),
),
Switch(
value: isOfrendar,
onChanged: (value){
setState((){
isOfrendar = value;
});
},
)
],
),
Column(
children: <Widget>[
Image.asset('move.png', height: 30, width: 30,),
Padding(
padding: const EdgeInsets.only(top:5.0),
child: Text('Movilizar'),
),
Switch(
value: isMovilizar,
onChanged: (value){
setState((){
isMovilizar = value;
});
},
)
],
),
],
)
],
),
);
},
control: new SwiperControl(),
),
);
}
}
这是JSON 我想将这些数据合并到一些小部件中。
[
{
"id": 1,
"nombreProy": "Fam. Arkani", //aqui quiero añadir el dato nombreProy
"image": "arkani",
"lugar": "Asia del Sur",
"proceso": "En Campo"
},
{
"id": 2,
"nombreProy": "Fam. Durán",
"image": "duran",
"lugar": "Quechua Panao",
"proceso": "En Campo"
},
{
"id": 3,
"nombreProy": "Fam. Flores Diego",
"image": "flores_diego",
"lugar": "Amahuacas",
"proceso": "En Campo"
},
{
"id": 4,
"nombreProy": "Fam. Garay Galvez",
"image": "garay_galvez",
"lugar": "Estados Unidos",
"proceso": "En Campo"
},
]
答案 0 :(得分:0)
您可以解决dart核心框架代码。
您应该首先创建资产文件夹,即根文件夹。 (插入资产中的JSON文件)
打开pubspec.yaml文件并声明JSON文件。
资产: asset / sample.json
您可以使用此代码并访问JSON文件。
字符串数据=等待rootBundle.loadString('assets / $ path.json')
现在您有了JSON文件作为字符串。
您可以将数据字符串转换为JSON格式。
var jsonList = json.decode(data);
最后,您创建一个类JSON模型。 (您可以选择JSON到dart或JSON序列化库)
for(jsonList中的可变项){ print(Sample.fromJson(item)); }
此解决方案将为您提供帮助。 如果需要完整的代码,请查看要点文件=> https://gist.github.com/VB10/34e97818f19f6bf0749fff8ffd1a5319