Json 能够制作关于颤振的收藏夹列表

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

我写了一个api。我已经把它列在我的申请表上了。当我点击心形图标时,我希望所选的图标列在不同的页面上。我不知道怎么做。 我想我需要在数据库中创建一个关系表。还有其他解决办法吗

单击此处的心脏图标将在另一个页面上列出。电子商务应用中最常用的产品逻辑

Api链接:

Api模型类:

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")
        ],
      ),
    );
  }
}