我正在尝试从互联网获取数据。这是json字符串:

{"channel":{"id":1090161,"name":"İscaklik","description":"İscakliği okeyrum da.","latitude":"0.0","longitude":"0.0","field1":"nem","field2":"iscaklik","created_at":"2020-06-27T11:56:47Z","updated_at":"2020-06-27T11:56:47Z","last_entry_id":1},"feeds":[{"created_at":"2020-06-27T12:02:32Z","entry_id":1,"field1":"5"}]}
我想在“提要”中获取“field1”。
我的代码是这样的:
class _DataState extends State<Data> {
  Future<String> AlbumState;
  void initState() {
    super.initState();
    oku();
  }

  var a;

  Future<List<Post>> oku() async {
    final response = await http.get(
        'https://api.thingspeak.com/channels/1090161/fields/1.json?api_key=JD9JYHAT2YHOI5Q3&results=1');
    if (response.statusCode == 200) {
      var responseJson = json.decode(response.body);
      return (responseJson['feeds'] as List)
          .map((p) => Post.fromJson(p))
          .toList();
    } else {
      throw Exception('La bulamadık la böyle bi şey yoh la');
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Fetch Data Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        body: Center(
          child: FutureBuilder<List<Post>>(
            future: oku(),
            builder: (context, snapshot) {
              if (snapshot.hasData) {
                return Text(snapshot.data.toString());
              } else if (snapshot.hasError) {
                return Text("${snapshot.error}");
              }
              return CircularProgressIndicator();
            },
          ),
        ),
      ),
    );
  }
}

class Post {
  final String field1;

  Post({this.field1});

  factory Post.fromJson(Map<String, dynamic> json) {
    return new Post(
      field1: json['entry_id'].toString(),
    );
  }
}
结果如下:
json - 为什么我的json代码给出了Post实例-LMLPHP
我想看5.(哪个是feed的field1)
为什么我看到这个?
我怎样才能解决这个问题?

最佳答案

因为您尝试使用整个对象,例如“文本”小部件中的“字符串”。尝试调用Post类中的field1属性。

return Text(snapshot.data[0].field1);

关于json - 为什么我的json代码给出了Post实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62613403/

10-14 21:12
查看更多