always false FutureBuilder

Hi guys I’m having problems with FutureBuilder I don’t know what happens but when I want to print the snapshot data is always null.

import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:todo/Controller/Person.dart';
import 'package:todo/Pages/Subjects/WidgetSubject.dart';
import 'package:http/http.dart' as http;

Future<List<Person>> _getAllPerson() async {
  final response =
  return personFromJson(response.body);

void main() => runApp(SubjectScreen(val: "Maths"));

class SubjectScreen extends StatelessWidget {
  String val;
  SubjectScreen({@required this.val});
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.amber,
        appBar: AppBar(
          backgroundColor: Colors.transparent,
          elevation: 0,
        body: Container(
          child: FutureBuilder<List<Person>>(
              future: _getAllPerson(),
              initialData: [],
                  (BuildContext context, AsyncSnapshot<List<Person>> snapshot) {
                if (snapshot.connectionState == ConnectionState.waiting) {
                  return Center(
                    child: CircularProgressIndicator(),
                } else {
                  if ( != null) {
                    List<Person> p =;
                    return ListView.builder(
                      itemBuilder: (context, index) {
                        return Subject(text: p[index].toString());
                  } else if (snapshot.hasError)
                    return Text("Error");
                    return Text("Not data");