Json 能够制作关于颤振的收藏夹列表
我写了一个api。我已经把它列在我的申请表上了。当我点击心形图标时,我希望所选的图标列在不同的页面上。我不知道怎么做。 我想我需要在数据库中创建一个关系表。还有其他解决办法吗 单击此处的心脏图标将在另一个页面上列出。电子商务应用中最常用的产品逻辑 Api链接: Api模型类:Json 能够制作关于颤振的收藏夹列表,json,api,flutter,dart,Json,Api,Flutter,Dart,我写了一个api。我已经把它列在我的申请表上了。当我点击心形图标时,我希望所选的图标列在不同的页面上。我不知道怎么做。 我想我需要在数据库中创建一个关系表。还有其他解决办法吗 单击此处的心脏图标将在另一个页面上列出。电子商务应用中最常用的产品逻辑 Api链接: Api模型类: import 'dart:convert'; List<Sonuc> sonucFromJson(String str) => List<Sonuc>.from(json.decode(s
import 'dart:convert';
List<Sonuc> sonucFromJson(String str) => List<Sonuc>.from(json.decode(str).map((x) => Sonuc.fromJson(x)));
String sonucToJson(List<Sonuc> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Sonuc {
Sonuc({
this.employeeId,
this.employeeName,
this.department,
this.mailId,
this.column1,
});
int employeeId;
String employeeName;
String department;
String mailId;
DateTime column1;
factory Sonuc.fromJson(Map<String, dynamic> json) => Sonuc(
employeeId: json["employeeID"],
employeeName: json["employeeName"],
department: json["department"],
mailId: json["mailID"],
column1: DateTime.parse(json["Column1"]),
);
Map<String, dynamic> toJson() => {
"employeeID": employeeId,
"employeeName": employeeName,
"department": department,
"mailID": mailId,
"Column1": "${column1.year.toString().padLeft(4, '0')}-${column1.month.toString().padLeft(2, '0')}-${column1.day.toString().padLeft(2, '0')}",
};
}
导入'dart:convert';
List-sonucFromJson(String-str)=>List.from(json.decode(str.map)(x)=>Sonuc.fromJson(x));
字符串sonucToJson(List data)=>json.encode(List.from(data.map)((x)=>x.toJson());
Sonuc类{
索努克({
这个,雇员ID,
这是我的名字,
这个部门,
这个.mailId,
这是第1栏,
});
国际雇员ID;
字符串employeeName;
弦乐部;
字符串mailId;
日期时间列1;
工厂Sonuc.fromJson(映射json)=>Sonuc(
employeeId:json[“employeeId”],
employeeName:json[“employeeName”],
部门:json[“部门”],
mailId:json[“mailId”],
column1:DateTime.parse(json[“column1”]),
);
映射到JSON()=>{
“雇员ID”:雇员ID,
“employeeName”:employeeName,
“部门”:部门,
“mailID”:mailID,
“Column1:“${Column1.year.toString().padLeft(4,'0')}-${Column1.month.toString().padLeft(2,'0')}-${Column1.day.toString().padLeft(2,'0')}”,
};
}
Api服务
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:rehber_uygulmasi_staj/modeller/sonuc.dart';
Future<List<Sonuc>> getSonuc() async {
///Uri uri= Uri.parse("http://salihapi.somee.com/api/Employee");
final String _url = "http://salihapi.somee.com/api/Employee";
final Map<String, String> _headers = {'Accept': 'application/json', 'Content-Type': 'application/json', 'Charset': 'utf-8'};
try{
final http.Response response = await http.get(
Uri.encodeFull(_url),
headers: _headers,
);
if (response.statusCode == 200) {
final _jsonBody = response.body;
print("department: " + _jsonBody);
final sonucResponse = sonucFromJson(_jsonBody);
return sonucResponse;
} else {
throw Exception("Request failed with status: ${response.statusCode}");
}
}catch(e){
print(e);
}
}
导入“包装:颤振/材料.省道”;
将“package:http/http.dart”导入为http;
导入“包:rehber_维吾尔马西_staj/Modeler/sonuc.dart”;
未来的getSonuc()异步{
///Uri=Uri.parse(“http://salihapi.somee.com/api/Employee");
最后一个字符串_url=”http://salihapi.somee.com/api/Employee";
最终映射_headers={'Accept':'application/json','Content Type':'application/json','Charset':'utf-8'};
试一试{
final http.Response Response=wait http.get(
url.encodeFull(_url),
标题:_标题,
);
如果(response.statusCode==200){
final _jsonBody=response.body;
打印(“部门:”+_jsonBody);
最终sonucResponse=sonucFromJson(_jsonBody);
返回响应;
}否则{
抛出异常(“请求失败,状态:${response.statusCode}”);
}
}捕获(e){
印刷品(e);
}
}
Api视图
class AramaSonuc extends StatefulWidget {
@override
_AramaSonucState createState() => _AramaSonucState();
}
class _AramaSonucState extends State<AramaSonuc> {
OrnekNotifier ornekNotifier;
@override
void initState() {
ornekNotifier = Provider.of<OrnekNotifier>(context,listen: false);
ornekNotifier.sonucGetir();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.redAccent /*HexColor("#0e2d85")*/,
title: Text(
"Arama Sonucu",
style: TextStyle(fontSize: 24),
),
),
body: Container(child: Consumer<OrnekNotifier>(
builder: (context, state, widget) {
return state.dataState == DataState.Wait
? Center(
child: CircularProgressIndicator(),
)
: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: state.sonuclar.length,
itemBuilder: (context, int index) {
print(
"buraya bak şura ${state.sonuclar[index].employeeName}");
return Card(
elevation: 4,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
child: ListTile(onTap: (){
Navigator.push(context, MaterialPageRoute(builder: (context)=>Favoriler(sonuc:state.sonuclar[index])));
},
leading: IconButton(icon: Icon(Icons.favorite),onPressed: (){
},),
title: Text(state.sonuclar[index].employeeName),
isThreeLine: true,
subtitle: Text(
'${state.sonuclar[index].mailId}\n${state.sonuclar[index].employeeId}'),
),
);
});
},
)),
);
}
}
类aramasunc扩展StatefulWidget{
@凌驾
_AramaSonucState createState()=>\u AramaSonucState();
}
类_AramaSonucState扩展状态
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:rehber_uygulmasi_staj/modeller/sonuc.dart';
class Favoriler extends StatefulWidget {
Sonuc sonuc;
Favoriler({this.sonuc});
@override
_FavorilerState createState() => _FavorilerState();
}
class _FavorilerState extends State<Favoriler> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title:Text(widget.sonuc!=null?widget.sonuc.mailId:'Favoriler',style: TextStyle(fontSize: 20),),backgroundColor: Colors.redAccent,actions: [
Container(padding: EdgeInsets.only(right: 15),child: Icon(Icons.exit_to_app)),
],),
body: ListView(
children: [
Text("favorite data will be listed here")
],
),
);
}
}