从API获取数据以及如何将其保存到SharePreference中时?

发布于 2025-02-13 23:21:28 字数 1608 浏览 0 评论 0原文

-->    JSON Response

{ “数据”: { “ Cityname”:null, “ dob”:“ 7/07/2022”, “ deviceType”:“ 0”, “电子邮件”:“ “ mobileno”:“ 1234567891”, “ profile图像”:“”, “ userId”:“ 1”, “用户名”:“ xyz”, “ USERTYPE”:“ 3” },, “消息”:“成功登录”, “状态”:200 }}

  --->  API SERVICE

                  
 Future<Loginmodel?> login() async {
if (passwordController.text.isNotEmpty && nameController.text.isNotEmpty) {
  var response = await http.post(
      Uri.parse(
        'XYZ',
      ),
      headers: {"Content-Type": "application/json"},
      body: (jsonEncode({
        'UserName': nameController.text,
        'Password': passwordController.text,
        'DeviceToken': '',
        'DeviceType': ''
      })));
  if (response.statusCode == 200) {
    var data = jsonDecode(response.body);

    print(data);

    print(data['data']['UserID'].toString());

    if (data['data']['UserID'] == null) {
      ScaffoldMessenger.of(context)
          .showSnackBar(SnackBar(content: Text("Invaild Credentials")));
    } else {
      Navigator.push(
          context, MaterialPageRoute(builder: (context) => Homescreen()));

      ScaffoldMessenger.of(context)
          .showSnackBar(SnackBar(content: Text("Succesfully Credentials")));
    }

    // await Storage.write(key: "token", value: output["token"]);
  }
} else {
  ScaffoldMessenger.of(context)
      .showSnackBar(SnackBar(content: Text("Black Field Not Allowed")));
}

}

-->    JSON Response

{
"data": {
"CityName": null,
"DOB": "7/07/2022",
"DeviceType": "0",
"Email": "[email protected]",
"MobileNo": "1234567891",
"ProfileImage": "",
"UserID": "1",
"UserName": "xyz",
"UserType": "3"
},
"message": "Successfully login",
"status": 200
}

  --->  API SERVICE

                  
 Future<Loginmodel?> login() async {
if (passwordController.text.isNotEmpty && nameController.text.isNotEmpty) {
  var response = await http.post(
      Uri.parse(
        'XYZ',
      ),
      headers: {"Content-Type": "application/json"},
      body: (jsonEncode({
        'UserName': nameController.text,
        'Password': passwordController.text,
        'DeviceToken': '',
        'DeviceType': ''
      })));
  if (response.statusCode == 200) {
    var data = jsonDecode(response.body);

    print(data);

    print(data['data']['UserID'].toString());

    if (data['data']['UserID'] == null) {
      ScaffoldMessenger.of(context)
          .showSnackBar(SnackBar(content: Text("Invaild Credentials")));
    } else {
      Navigator.push(
          context, MaterialPageRoute(builder: (context) => Homescreen()));

      ScaffoldMessenger.of(context)
          .showSnackBar(SnackBar(content: Text("Succesfully Credentials")));
    }

    // await Storage.write(key: "token", value: output["token"]);
  }
} else {
  ScaffoldMessenger.of(context)
      .showSnackBar(SnackBar(content: Text("Black Field Not Allowed")));
}

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

断念 2025-02-20 23:21:28

我建议您使用蜂巢。这是一篇具有适当指南的文章,可以在Hive中实施。 https://mukhtharcm.com/hive-custom-objects/

I'll suggest you to use hive. Here is an article with proper guide to implement that in Hive. https://mukhtharcm.com/hive-custom-objects/

物价感观 2025-02-20 23:21:28

您还可以使用 sqllite 作为sharedPreferances不支持对象

You'll could also use SQLlite as SharedPreferances doesn't support objects

闻呓 2025-02-20 23:21:28

仅针对原始数据而不是对象,我建议您使用sqlite,如果您熟悉sql数据库或hive hive for nosql

SharedPrefernces only for primitive data not objects i advice you to use sqlite if you re familiar with sql database or Hive for NoSql

使用字符串:在阅读时编写和解码时编码数据。这样的事情可以起作用:


final prefs = await SharedPreferences.getInstance();

await prefs.setString('user', jsonEncode(data['data']));

final user = jsonDecode(prefs.getString('user'));

Use String: encode data when writing and decode when reading. Something like this could work:


final prefs = await SharedPreferences.getInstance();

await prefs.setString('user', jsonEncode(data['data']));

final user = jsonDecode(prefs.getString('user'));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文