flatter-从JSON列表中获取数据
我有一些无法解决的问题,请帮助我。我想从数据库中获取数据,这些数据是json列表。。。我写了一些代码,但无法在控制台上打印。。。我将在下面添加代码,请帮助我。。。我想我必须使用for循环,但当我尝试时,我只能获取1个数据 代码如下:flatter-从JSON列表中获取数据,json,database,flutter,dart,Json,Database,Flutter,Dart,我有一些无法解决的问题,请帮助我。我想从数据库中获取数据,这些数据是json列表。。。我写了一些代码,但无法在控制台上打印。。。我将在下面添加代码,请帮助我。。。我想我必须使用for循环,但当我尝试时,我只能获取1个数据 代码如下: class DenemeParca extends StatefulWidget { final String parcaReferans; DenemeParca({this.parcaReferans}); @override _Deneme
class DenemeParca extends StatefulWidget {
final String parcaReferans;
DenemeParca({this.parcaReferans});
@override
_DenemeParcaState createState() => _DenemeParcaState();
}
Future<List<dynamic>> getIhaleData() async {
final url =
'https://www.ekspar.com.tr/onarim/dart.php';
var response = await http.get(url);
return json.decode(response.body);
}
String _parcaReferans(dynamic user) {
for (var i = 8; i < 40; i++) {
return user['parca_adi']['$i'];
}
}
class _DenemeParcaState extends State<DenemeParca> {
Widget _buildBody() {
return FutureBuilder<List<dynamic>>(
future: getIhaleData(),
builder: (context, snapshot) {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index) {
return Container(
child: Column(
children: <Widget>[
RaisedButton(
onPressed: () async {
print(_parcaReferans(snapshot.data[index]));
},
child: Text('Get Data'),
),
],
),
);
},
);
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Title'),
),
body: _buildBody(),
);
}
}
void main() {
runApp(
MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Ekspar Demo',
theme: ThemeData(
backgroundColor: Colors.white,
),
home: DenemeParca()
),
);
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return DenemeParca();
}
}
DenemeParca类扩展StatefulWidget{
最终字符串parcaReferans;
DenemeParca({this.parcaReferans});
@凌驾
_DenemeParcaState createState()=>\u DenemeParcaState();
}
未来的getIhaleData()异步{
最终url=
'https://www.ekspar.com.tr/onarim/dart.php';
var response=wait http.get(url);
返回json.decode(response.body);
}
字符串\u parcaReferans(动态用户){
对于(变量i=8;i<40;i++){
返回用户['parca_adi']['$i'];
}
}
类_DenemeParcaState扩展状态{
小部件_buildBody(){
回归未来建设者(
future:getIhaleData(),
生成器:(上下文,快照){
返回ListView.builder(
itemCount:snapshot.data.length,
itemBuilder:(上下文,索引){
返回容器(
子:列(
儿童:[
升起的按钮(
onPressed:()异步{
打印(_parcaReferans(snapshot.data[index]);
},
child:Text('Get Data'),
),
],
),
);
},
);
},
);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“标题”),
),
正文:_buildBody(),
);
}
}
void main(){
runApp(
材料聚丙烯(
debugShowCheckedModeBanner:false,
标题:“Ekspar演示”,
主题:主题数据(
背景颜色:Colors.white,
),
住址:DenemeParca()
),
);
}
类MyHomePage扩展StatefulWidget{
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
@凌驾
小部件构建(构建上下文){
返回DenemeParca();
}
}
顺便说一句,link有json代码,谢谢你…因为你的“parcaAdi”不是json数组,所以你不能循环所有的值,你必须逐个选择它们。为了获取所有数据,我首先使用以下命令为JSON创建了一个模型。现在,要获取数据,您只需执行以下操作
Future getIhaleData()异步{
最终url=
'https://www.ekspar.com.tr/onarim/dart-ilan-listele.php?parca_ilan_id=111';
var response=wait http.get(url);
Model Model=Model.fromJson(json.decode(response.body)[0]);
//现在您可以访问您的数据。
印刷品(型号:parcaAdi.s1);
印刷品(parcaAdi.s2型);
}
下面是模型类的代码
类模型{
帕卡迪·帕卡迪;
模型({this.parcaAdi});
Model.fromJson(映射json){
帕卡迪=
json['parca_adi']!=null?ParcaAdi.fromJson(json['parca_adi']):null;
}
映射到JSON(){
最终地图数据={};
如果(parcaAdi!=null){
data['parca_adi']=parcaAdi.toJson();
}
返回数据;
}
}
帕卡迪类{
字符串s1;
字符串s2;
字符串s3;
字符串s4;
字符串s5;
字符串s6;
字符串s7;
串s8;
帕卡迪(
{this.s1,this.s2,this.s3,this.s4,this.s5,this.s6,this.s7,this.s8});
ParcaAdi.fromJson(映射json){
s1=json['1'];
s2=json['2'];
s3=json['3'];
s4=json['4'];
s5=json['5'];
s6=json['6'];
s7=json['7'];
s8=json['8'];
}
映射到JSON(){
最终地图数据={};
数据['1']=s1;
数据['2']=s2;
数据['3']=s3;
数据['4']=s4;
数据['5']=s5;
数据['6']=s6;
数据['7']=s7;
数据['8']=s8;
返回数据;
}
}
API中的JSON一直在变化,你能修复吗?对不起,我的朋友,我正在尝试这么做://请在你完成后告诉我,这样我就可以回答你的问题了。它不起作用,我仍然有相同的错误。。。我的意思是我没有改变任何东西你代码中的链接不包含“parca_referans”。