首页 > 解决方案 > 在flutterr中解析复杂的json

问题描述

在我的代码中,我必须解析 json。第一个链接工作正常,但第二个调用错误未处理异常:类型“列表”不是“地图”类型的子类型。我怎样才能解决它并潜入这个主题?我读到了什么?

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:async';
import 'dart:convert';

void main() {
  runApp(MaterialApp(
    home: HomePage(),
  ));
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  Map data;
  List userData;

  Future getData() async {
    http.Response response = await http.get("https://reqres.in/api/users?page=2"
//        "https://api.unsplash.com/photos/?client_id=cf49c08b444ff4cb9e4d126b7e9f7513ba1ee58de7906e4360afc1a33d1bf4c0"
        );
    data = json.decode(response.body);

    setState(() {
      userData = data["data"];
    });
    debugPrint(data.toString());
  }

  @override
  void initState() {
    super.initState();
    getData();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Fake Friends"),
        backgroundColor: Colors.green,
      ),
      body: Container(),
    );
  }
}

标签: flutter

解决方案


最好为要解析的对象创建一个模型,并编写fromJson()toJson()函数来控制解析过程。

有一种简单的方法可以通过它,只需在此处Json object传递您要解析的示例,它就会为您生成所需的类。


推荐阅读