Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在flatter中以SQl表格式存储http请求的Json响应?_Json_Flutter_Dart - Fatal编程技术网

如何在flatter中以SQl表格式存储http请求的Json响应?

如何在flatter中以SQl表格式存储http请求的Json响应?,json,flutter,dart,Json,Flutter,Dart,我正在从一个API读取数据。从响应中,我按照一些标准对数据进行了排序。因此,我想将响应存储在一个表中,然后使用SQL命令进行排序,并在列表视图中显示。但问题是,我无法准确地计算出大部分响应是如何完成的。我浏览的博客没有提供深入了解事物,我对JSON和Flatter不熟悉,有一段真正的凝灰岩时间。下面我将列出我所做的所有必要的事情: JSON数据: { "list":[ { "id":"MnJJA0dbuw",

我正在从一个API读取数据。从响应中,我按照一些标准对数据进行了排序。因此,我想将响应存储在一个表中,然后使用SQL命令进行排序,并在列表视图中显示。但问题是,我无法准确地计算出大部分响应是如何完成的。我浏览的博客没有提供深入了解事物,我对JSON和Flatter不熟悉,有一段真正的凝灰岩时间。下面我将列出我所做的所有必要的事情:

JSON数据:

{
  "list":[
    {
      "id":"MnJJA0dbuw",
      "name":"Anand Sharma",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Anand.jpeg",
      "gender":"m",
      "age":46,
      "date":"23/11/2019",
      "status":"onboarded"
    },
    {
      "id":"MnZmmmbuw",
      "name":"Malashri Lal",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Vishesh.jpg",
      "gender":"f",
      "age":70,
      "date":"01/10/2019",
      "status":"active"
    },
    {
      "id":"MnZy10dpsq",
      "name":"Suhasini Haidar",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Suhasini.jpg",
      "gender":"f",
      "age":30,
      "date":"23/03/2019",
      "status":"left"
    },
    {
      "id":"HOnmFt5jA",
      "name":"Vishesh Mahajan",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Vishesh.jpg",
      "gender":"m",
      "age":34,
      "date":"05/05/2019",
      "status":"active"
    },
    {
      "id":"MnZy10dxyz",
      "name":"Anand Neelakantan",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Anand.jpeg",
      "gender":"m",
      "age":46,
      "date":"03/10/2019",
      "status":"left"
    },
    {
      "id":"MnZy1JJbuw",
      "name":"Malashri",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Malashri.jpg",
      "gender":"f",
      "age":65,
      "date":"04/01/2019",
      "status":"active"
    },
    {
      "id":"JKAS10dbuw",
      "name":"Meenakshi Madhavan",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Meenakshi.jpg",
      "gender":"f",
      "age":35,
      "date":"01/03/2020",
      "status":"left"
    },
    {
      "id":"sOw8c6BOug",
      "name":"Fintan",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Fintan.jpg",
      "gender":"m",
      "age":55,
      "date":"09/12/2019",
      "status":"onboarded"
    },
    {
      "id":"MnZy10dlll",
      "name":"Jaishree Periwal",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Jaishree.jpg",
      "gender":"f",
      "age":50,
      "date":"01/02/2020",
      "status":"active"
    },
    {
      "id":"KbN3VELflA",
      "name":"Anukriti Upadhyay",
      "img":"https://incablet-tests.s3.ap-south-1.amazonaws.com/conference-content/photos/sponsors/Anukriti.jpg",
      "gender":"f",
      "age":30,
      "date":"31/01/2020",
      "status":"onboarded"
    }
  ]
}
Podo文件:

// To parse this JSON data, do
//
//     final customerInfo = customerInfoFromMap(jsonString);

import 'dart:convert';

CustomerInfo customerInfoFromMap(String str) => CustomerInfo.fromMap(json.decode(str));

String customerInfoToMap(CustomerInfo data) => json.encode(data.toMap());

class CustomerInfo {
  CustomerInfo({
    this.list,
  });

  List<ListElement> list;

  factory CustomerInfo.fromMap(Map<String, dynamic> json) => CustomerInfo(
    list: List<ListElement>.from(json["list"].map((x) => ListElement.fromMap(x))),
  );

  Map<String, dynamic> toMap() => {
    "list": List<dynamic>.from(list.map((x) => x.toMap())),
  };
}

class ListElement {
  ListElement({
    this.id,
    this.name,
    this.img,
    this.gender,
    this.age,
    this.date,
    this.status,
  });

  String id;
  String name;
  String img;
  Gender gender;
  int age;
  String date;
  Status status;

  factory ListElement.fromMap(Map<String, dynamic> json) => ListElement(
    id: json["id"],
    name: json["name"],
    img: json["img"],
    gender: genderValues.map[json["gender"]],
    age: json["age"],
    date: json["date"],
    status: statusValues.map[json["status"]],
  );

  Map<String, dynamic> toMap() => {
    "id": id,
    "name": name,
    "img": img,
    "gender": genderValues.reverse[gender],
    "age": age,
    "date": date,
    "status": statusValues.reverse[status],
  };
}

enum Gender { M, F }

final genderValues = EnumValues({
  "f": Gender.F,
  "m": Gender.M
});

enum Status { ONBOARDED, ACTIVE, LEFT }

final statusValues = EnumValues({
  "active": Status.ACTIVE,
  "left": Status.LEFT,
  "onboarded": Status.ONBOARDED
});

class EnumValues<T> {
  Map<String, T> map;
  Map<T, String> reverseMap;

  EnumValues(this.map);

  Map<T, String> get reverse {
    if (reverseMap == null) {
      reverseMap = map.map((k, v) => new MapEntry(v, k));
    }
    return reverseMap;
  }
}
//要解析此JSON数据,请执行以下操作
//
//最终customerInfo=customerInfoFromMap(jsonString);
导入“dart:convert”;
customerinfocustomerinfofrommap(stringstr)=>CustomerInfo.fromMap(json.decode(str));
字符串customerInfoToMap(customerinfodata)=>json.encode(data.toMap());
类CustomerInfo{
客户信息({
这个列表,
});
名单;
factory CustomerInfo.fromMap(Map json)=>CustomerInfo(
list:list.from(json[“list”].map((x)=>liselement.fromMap(x)),
);
映射toMap()=>{
“list”:list.from(list.map((x)=>x.toMap()),
};
}
类列表元素{
李斯特伦({
这个身份证,
这个名字,
这个.img,,
这个,性别,
这个年龄,
这个日期,
这个,身份,,
});
字符串id;
字符串名;
字符串img;
性别;
智力年龄;
字符串日期;
地位;
factory ListElement.fromMap(Map json)=>ListElement(
id:json[“id”],
名称:json[“名称”],
img:json[“img”],
性别:genderValues.map[json[“性别”]],
年龄:json[“年龄”],
日期:json[“日期”],
status:statusValues.map[json[“status”]],
);
映射toMap()=>{
“id”:id,
“姓名”:姓名,
“img”:img,
“性别”:性别价值观。反向[性别],
“年龄”:年龄,
“日期”:日期,
“状态”:状态值。反转[状态],
};
}
枚举性别{M,F}
最终性别值=枚举值({
“f”:性别,
“m”:性别
});
枚举状态{已加载,活动,左侧}
最终状态值=枚举值({
“活动”:Status.active,
“左”:Status.left,
“已登船”:状态。已登船
});
类枚举值{
地图;
地图反转地图;
枚举值(this.map);
地图反转{
if(reverseMap==null){
reverseMap=map.map((k,v)=>newMapEntry(v,k));
}
返回反向映射;
}
}
数据的数据库文件:

import 'dart:async';
import 'dart:io';

import 'package:flutterappincablet/podo_file.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';

import 'package:sqflite/sqflite.dart';

class CustomerDatabaseProvider {
  CustomerDatabaseProvider._();

  static final CustomerDatabaseProvider db = CustomerDatabaseProvider._();
  Database _database;

  Future<Database> get database async {
    if (_database != null) return _database;
    _database = await getDatabaseInstance();
    return _database;
  }

  Future<Database> getDatabaseInstance() async {
    Directory directory = await getApplicationDocumentsDirectory();
    String path = join(directory.path, "customer_data.db");
    return await openDatabase(path, version: 1,
        onCreate: (Database db, int version) async {
      await db.execute(
          "CREATE TABLE CUSTOMER_DATA(id TEXT PRIMARY KEY, name TEXT,img TEXT,gender TEXT,age INTEGER,date TEXT,status TEXT)");
    });
  }

  Future<List<ListElement>> getAllPersons() async {
    final db = await database;
    var response = await db.query("CUSTOMER_DATA");
    List<ListElement> list =
        response.map((c) => ListElement.fromMap(c)).toList();
    return list;
  }
}
导入'dart:async';
导入“dart:io”;
导入“package:flatterappincablet/podo_file.dart”;
导入“package:path/path.dart”;
导入“package:path_provider/path_provider.dart”;
导入“包:sqflite/sqflite.dart”;
类CustomerDatabaseProvider{
CustomerDatabaseProvider.uz();
静态最终CustomerDatabaseProvider db=CustomerDatabaseProvider.uz();
数据库(u)数据库;;
未来获取数据库异步{
如果(_database!=null)返回_database;
_数据库=等待getDatabaseInstance();
返回数据库;
}
未来的getDatabaseInstance()异步{
目录目录=等待getApplicationDocumentsDirectory();
String path=join(directory.path,“customer_data.db”);
返回等待openDatabase(路径,版本:1,
onCreate:(数据库数据库,int版本)异步{
等待db.execute(
“创建表CUSTOMER_数据(id文本主键、名称文本、img文本、性别文本、年龄整数、日期文本、状态文本)”;
});
}
Future getAllPersons()异步{
最终数据库=等待数据库;
var响应=等待数据库查询(“客户数据”);
列表=
response.map((c)=>liselement.fromMap(c)).toList();
退货清单;
}
}
读取API并存储在数据库中的服务文件。这是我无法理解的地方:

import 'package:flutter/animation.dart';
import 'package:flutterappincablet/podo_file.dart';
import 'package:http/http.dart' as http;

import 'db_provider.dart';

Future<List<ListElement>> getData() async {
  List<ListElement> list;
  var apiUrl =
      "https://5w05g4ddb1.execute-api.ap-south-1.amazonaws.com/dev/profile/listAll";
  var res = await http.get(apiUrl);
  if (res.statusCode == 200) {
    var data = json.decode(res.body);
    var rest = data["list"] as List;
    // print(rest);
    list = rest.map<ListElement>((json) => ListElement.fromJson(json)).toList();
    // print('okay, ${rest[0]}!');
  } else {
    return null;
  }
}
import'package:flatter/animation.dart';
导入“package:flatterappincablet/podo_file.dart”;
将“package:http/http.dart”导入为http;
导入“db_provider.dart”;
Future getData()异步{
名单;
阿皮乌尔变种=
"https://5w05g4ddb1.execute-api.ap-south-1.amazonaws.com/dev/profile/listAll";
var res=await http.get(apirl);
如果(res.statusCode==200){
var data=json.decode(res.body);
var rest=数据[“列表”]作为列表;
//打印(其余);
list=rest.map((json)=>liselement.fromJson(json)).toList();
//print('OK,${rest[0]}!');
}否则{
返回null;
}
}