json - Flutter 快照数据为空

标签 json flutter

我是 flutter 的新手,我尝试从 rest api 解析数据。 接口(interface)返回:

http://www.json-generator.com/api/json/get/cqwVqdOFrC?indent=2

例如。这里从 json api 获取数据,例如。长度为3231

class ApiService {
  static Future<dynamic> _get(String url) async {
    try {
    final response = await http.get(url);

    var jsonData = json.decode(response.body);

    if (response.statusCode == 200) {
        print(response.body.length);  //3231
        return jsonData;

    } else {
            return null;
    }
    }
  }

但是这里是 snapshot.hasData = False,为什么?

return Scaffold(
   appBar: AppBar(title: Text('Posts'),),
      body: FutureBuilder(
        future: ApiService.getUserList(),
        builder: (BuildContext context, AsyncSnapshot snapshot) {
          print(snapshot.hasData.toString());  //False no data





static Future<List<dynamic>> getUserList() async {
    return await _get('${Urls.BASE_API_URL}');
  }

在 json 开头没有 items 一切正常。我的网络服务器在开头返回项目。有什么解决办法吗?

最佳答案

api 返回 Map<String, dynamic>不是<List<dynamic>>

class ListaAbitudini extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new _ListaAbitudiniState();
  }
}

class _ListaAbitudiniState extends State<ListaAbitudini> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('Posts'),
        ),
        body: FutureBuilder(
            future: ApiService.getUserList(),
            builder: (BuildContext context, AsyncSnapshot snapshot) {
              if(snapshot.hasData)
              print("True");

              return Container();
            }));
  }
}

class ApiService {
  static Future<Map<String, dynamic>> getUserList() async {
    return await _get('http://www.json-generator.com/api/json/get/cqwVqdOFrC?indent=2');
  }

  static Future<dynamic> _get(String url) async {
    try {
      final response = await http.get(url);

      var jsonData = json.decode(response.body);

      if (response.statusCode == 200) {
        print(response.body.length); //3231
        return jsonData;
      } else {
        return null;
      }
    } catch (e) {
      print(e);
    }
  }
}

关于json - Flutter 快照数据为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59010571/

相关文章:

javascript - 使用 Json 如何根据数据库中的值选择单选按钮?

json - swift 2.0 : Loop through JSON array with NSDictionary

java - 如何将 Jackson PrettyPrinter 格式 json 配置为 Gson

json - ElasticSearch嵌套数组部分更新

javascript - JSON google geocode API 获取国家

dart - 以阿拉伯语格式显示数字 Dart

Flutter 网页图片复制粘贴

ios - 用于 Flutter iOS Swift 设置的谷歌地图

dart - ClassName method() => ClassName() 在 Dart 中是什么意思?

flutter - Flutter:从 future 函数返回int变量是无状态小部件:已编辑和更改