【问题标题】:how to store json response locally (sqflite database) in flutter如何在flutter中本地存储json响应(sqflite数据库)
【发布时间】:2020-01-11 05:11:42
【问题描述】:

我无法将来自 API 的 json 响应存储在 sqflite 数据库中,但我已经在列表中解析了 json 响应,并且我在 sqflite 数据库中存储了类似的数据。

要存储在本地,我成功了,能够执行 CRUD 操作并将其发送到服务器,同样我也能够对 API 数据执行 CRUD 操作,但是本地和 json 数据之间的同步出现问题。

下面调用json数据的code id

Future<List<Activities>> getData() async {
List<Activities> list;
var res = await http
    .post("http://xxxx/get-activity", headers: {
  HttpHeaders.authorizationHeader: "Bearer " + _token.toString()
});
if (res.statusCode == 200) {
  var data = json.decode(res.body);
  var rest = data["data"] as List;
 // print(rest);
  list = rest.map<Activities>((json) => Activities.fromJson(json)).toList();
 // print('okay, ${rest[0]}!');
} else {
  print('something error');
}
print("List Size: ${list.length}");
return list;

}

【问题讨论】:

  • 你的意思是你有一个json字符串,你想把这个大字符串保存到sqlite?或者你已经解析了这个 json 字符串并且想要将每个字段保存到 sqllite?
  • 我做到了。我当时的实际问题是:我解析了 json 字符串并能够在 sqflite 中使用未来的构建器和问题存储在列表中显示
  • 你找到解决办法了吗?

标签: json flutter dart sqflite


【解决方案1】:

解决了

var data = json.decode(res.body);
var activities= data["data"] as List; 
for (var activity in activities) {
 Activity actData = Activity.fromMap(activity);
 batch.insert(actTable, actData.toMap());
} 

【讨论】:

    【解决方案2】:

    解决方案!请使用这个flutter插件json_store

    【讨论】:

      猜你喜欢
      • 2020-04-13
      • 1970-01-01
      • 2019-12-03
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2023-03-23
      • 2020-12-01
      相关资源
      最近更新 更多