【问题标题】:Deserialize objects in Flutter from json using map didn't work使用 map 从 json 反序列化 Flutter 中的对象不起作用
【发布时间】:2021-07-08 04:32:56
【问题描述】:

我是 Flutter 的新手。我正在尝试反序列化 json 字符串并制作飞镖对象。但我做不到。

当我尝试映射时,它不会执行 debugPrint()。我不知道为什么并且没有错误?请帮我。 API 工作正常。当我使用 response.body 打印数据时,它还会打印真正的 json 数据。



  Future<List<User>> fetchData() async {
    List<User> users;

    final response = await http.get(
      Uri.http(' 192.168.0.102:8000', 'api/users'),
    );
    print(response.statusCode);
    //print(response.body);

    if (response.statusCode == 200) {
      final list = json.decode(response.body) as List;
      print('is $list');

      // for (var i = 0; i < list.length; i++) {
      users = list.map((e) {
        debugPrint(e);
        return User(id: e['id'], bap: e['bap'], lgNumber: e['lgnumber']);
      });
      // }
      print('after');
      return users;
    
    } else {
      return null;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: FutureBuilder(
        future: fetchData(),
        builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.done &&
              snapshot.hasData) {
            return ListView.builder(
              itemCount: snapshot.data.length,
              itemBuilder: (context, index) {
                User user = snapshot.data[index];
                return Text(
                  user.bap.toString(),
                );
              },
            );
          }
          return Container();
        },
      ),
    );
  }
}

【问题讨论】:

    标签: json flutter dart


    【解决方案1】:

    使用它从 json 中获取用户列表

     users = list.map((e) {
        //debugPrint(e.toString());
        return User(id: e['id'], bap: e['bap'], lgNumber: e['lgnumber']);
      }).toList();
    

    【讨论】:

      【解决方案2】:

      问题是我在 Flutter 和 Laravel 中没有使用相同的数据类型。我在 Flutter 中使用 int,在 Laravel 或后端使用 string。但是没有导致问题的错误。

      【讨论】:

        猜你喜欢
        • 2023-04-06
        • 2018-12-12
        • 2012-09-18
        • 2017-11-19
        • 2023-03-31
        • 2021-01-26
        • 1970-01-01
        • 2018-12-02
        • 1970-01-01
        相关资源
        最近更新 更多