Arrays 颤振中嵌套JSON的处理

Arrays 颤振中嵌套JSON的处理,arrays,json,list,parsing,flutter,Arrays,Json,List,Parsing,Flutter,我有一个API,它以JSON数组的形式返回讲座和测验 我设法查看和处理了讲座,但测验进入了一个无限循环,我找不到问题所在。 有关于如何查看它的帮助吗? JSON响应如下所示 { "quizzes": [ { "quiz": { "quizName": "ch3-", "quizDate": "2019-12-06T01:23:35.748Z", "qui

我有一个API,它以JSON数组的形式返回讲座和测验 我设法查看和处理了讲座,但测验进入了一个无限循环,我找不到问题所在。 有关于如何查看它的帮助吗? JSON响应如下所示

{
    "quizzes": [
        {
            "quiz": {
                "quizName": "ch3-",
                "quizDate": "2019-12-06T01:23:35.748Z",
                "quizNo": 5,
                "chName": "ch3-",
            },
            "mark": 9
        },
        {
            "quiz": {             
                "quizName": "ch5-",
                "quizDate": "2020-01-07T11:57:15.862Z",
                "quizNo": 5,
                "chName": "ch5-",
            },
            "mark": 13.5
        },
    ],
}
   ListTile(
            title: Text("Quizzes"),
            subtitle: Text("${posts.quizzes}"),
           ),
这是我的代码(我做了一个
测验
课程,并在
测验
课程中调用了它)


尝试将您的型号更改为此

// To parse this JSON data, do
//
//     final quizzes = quizzesFromJson(jsonString);

import 'dart:convert';

Quizzes quizzesFromJson(String str) => Quizzes.fromJson(json.decode(str));

String quizzesToJson(Quizzes data) => json.encode(data.toJson());

class Quizzes {
    final List<QuizElement> quizzes;

    Quizzes({
        this.quizzes,
    });

    factory Quizzes.fromJson(Map<String, dynamic> json) => Quizzes(
        quizzes: json["quizzes"] == null ? null : List<QuizElement>.from(json["quizzes"].map((x) => QuizElement.fromJson(x))),
    );

    Map<String, dynamic> toJson() => {
        "quizzes": quizzes == null ? null : List<dynamic>.from(quizzes.map((x) => x.toJson())),
    };
}

class QuizElement {
    final QuizQuiz quiz;
    final double mark;

    QuizElement({
        this.quiz,
        this.mark,
    });

    factory QuizElement.fromJson(Map<String, dynamic> json) => QuizElement(
        quiz: json["quiz"] == null ? null : QuizQuiz.fromJson(json["quiz"]),
        mark: json["mark"] == null ? null : json["mark"].toDouble(),
    );

    Map<String, dynamic> toJson() => {
        "quiz": quiz == null ? null : quiz.toJson(),
        "mark": mark == null ? null : mark,
    };
}

class QuizQuiz {
    final String quizName;
    final DateTime quizDate;
    final int quizNo;
    final String chName;

    QuizQuiz({
        this.quizName,
        this.quizDate,
        this.quizNo,
        this.chName,
    });

    factory QuizQuiz.fromJson(Map<String, dynamic> json) => QuizQuiz(
        quizName: json["quizName"] == null ? null : json["quizName"],
        quizDate: json["quizDate"] == null ? null : DateTime.parse(json["quizDate"]),
        quizNo: json["quizNo"] == null ? null : json["quizNo"],
        chName: json["chName"] == null ? null : json["chName"],
    );

    Map<String, dynamic> toJson() => {
        "quizName": quizName == null ? null : quizName,
        "quizDate": quizDate == null ? null : quizDate.toIso8601String(),
        "quizNo": quizNo == null ? null : quizNo,
        "chName": chName == null ? null : chName,
    };
}
//要解析此JSON数据,请执行以下操作
//
//最终测验=测验来自JSON(jsonString);
导入“dart:convert”;
Quizzes quizzesFromJson(String str)=>Quizzes.fromJson(json.decode(str));
字符串quizzesToJson(Quizzes data)=>json.encode(data.toJson());
课堂测验{
期末清单测验;
测验({
这是测验,
});
工厂测验.fromJson(映射json)=>测验(
测验:json[“测验”]==null?null:List.from(json[“测验”].map((x)=>QuizElement.fromJson(x)),
);
映射到JSON()=>{
“quizzes”:quizzes==null?null:List.from(quizzes.map((x)=>x.toJson()),
};
}
课堂提问{
期末测验;
最终双标记;
奎齐勒姆({
这个小测验,
这个,马克,
});
工厂QuizElement.fromJson(映射json)=>QuizElement(
quick:json[“quick”]==null?null:quizquick.fromJson(json[“quick”]),
mark:json[“mark”]==null?null:json[“mark”].toDouble(),
);
映射到JSON()=>{
“quick”:quick==null?null:quick.toJson(),
“标记”:标记==空?空:标记,
};
}
课堂问答{
最终字符串quizName;
最终日期时间quizDate;
最后一步;
最终字符串chName;
智力测验({
这是我的名字,
这个,奎兹达特,
这是我的,
这个.chName,
});
工厂quizquick.fromJson(映射json)=>quizquick(
quizName:json[“quizName”]==null?null:json[“quizName”],
quizDate:json[“quizDate”]==null?null:DateTime.parse(json[“quizDate”]),
quizNo:json[“quizNo”]==null?null:json[“quizNo”],
chName:json[“chName”]==null?null:json[“chName”],
);
映射到JSON()=>{
“quizName”:quizName==null?null:quizName,
“quizDate”:quizDate==null?null:quizDate.toIso8601String(),
“quizNo”:quizNo==null?null:quizNo,
“chName”:chName==null?null:chName,
};
}

尝试将您的型号更改为此

// To parse this JSON data, do
//
//     final quizzes = quizzesFromJson(jsonString);

import 'dart:convert';

Quizzes quizzesFromJson(String str) => Quizzes.fromJson(json.decode(str));

String quizzesToJson(Quizzes data) => json.encode(data.toJson());

class Quizzes {
    final List<QuizElement> quizzes;

    Quizzes({
        this.quizzes,
    });

    factory Quizzes.fromJson(Map<String, dynamic> json) => Quizzes(
        quizzes: json["quizzes"] == null ? null : List<QuizElement>.from(json["quizzes"].map((x) => QuizElement.fromJson(x))),
    );

    Map<String, dynamic> toJson() => {
        "quizzes": quizzes == null ? null : List<dynamic>.from(quizzes.map((x) => x.toJson())),
    };
}

class QuizElement {
    final QuizQuiz quiz;
    final double mark;

    QuizElement({
        this.quiz,
        this.mark,
    });

    factory QuizElement.fromJson(Map<String, dynamic> json) => QuizElement(
        quiz: json["quiz"] == null ? null : QuizQuiz.fromJson(json["quiz"]),
        mark: json["mark"] == null ? null : json["mark"].toDouble(),
    );

    Map<String, dynamic> toJson() => {
        "quiz": quiz == null ? null : quiz.toJson(),
        "mark": mark == null ? null : mark,
    };
}

class QuizQuiz {
    final String quizName;
    final DateTime quizDate;
    final int quizNo;
    final String chName;

    QuizQuiz({
        this.quizName,
        this.quizDate,
        this.quizNo,
        this.chName,
    });

    factory QuizQuiz.fromJson(Map<String, dynamic> json) => QuizQuiz(
        quizName: json["quizName"] == null ? null : json["quizName"],
        quizDate: json["quizDate"] == null ? null : DateTime.parse(json["quizDate"]),
        quizNo: json["quizNo"] == null ? null : json["quizNo"],
        chName: json["chName"] == null ? null : json["chName"],
    );

    Map<String, dynamic> toJson() => {
        "quizName": quizName == null ? null : quizName,
        "quizDate": quizDate == null ? null : quizDate.toIso8601String(),
        "quizNo": quizNo == null ? null : quizNo,
        "chName": chName == null ? null : chName,
    };
}
//要解析此JSON数据,请执行以下操作
//
//最终测验=测验来自JSON(jsonString);
导入“dart:convert”;
Quizzes quizzesFromJson(String str)=>Quizzes.fromJson(json.decode(str));
字符串quizzesToJson(Quizzes data)=>json.encode(data.toJson());
课堂测验{
期末清单测验;
测验({
这是测验,
});
工厂测验.fromJson(映射json)=>测验(
测验:json[“测验”]==null?null:List.from(json[“测验”].map((x)=>QuizElement.fromJson(x)),
);
映射到JSON()=>{
“quizzes”:quizzes==null?null:List.from(quizzes.map((x)=>x.toJson()),
};
}
课堂提问{
期末测验;
最终双标记;
奎齐勒姆({
这个小测验,
这个,马克,
});
工厂QuizElement.fromJson(映射json)=>QuizElement(
quick:json[“quick”]==null?null:quizquick.fromJson(json[“quick”]),
mark:json[“mark”]==null?null:json[“mark”].toDouble(),
);
映射到JSON()=>{
“quick”:quick==null?null:quick.toJson(),
“标记”:标记==空?空:标记,
};
}
课堂问答{
最终字符串quizName;
最终日期时间quizDate;
最后一步;
最终字符串chName;
智力测验({
这是我的名字,
这个,奎兹达特,
这是我的,
这个.chName,
});
工厂quizquick.fromJson(映射json)=>quizquick(
quizName:json[“quizName”]==null?null:json[“quizName”],
quizDate:json[“quizDate”]==null?null:DateTime.parse(json[“quizDate”]),
quizNo:json[“quizNo”]==null?null:json[“quizNo”],
chName:json[“chName”]==null?null:json[“chName”],
);
映射到JSON()=>{
“quizName”:quizName==null?null:quizName,
“quizDate”:quizDate==null?null:quizDate.toIso8601String(),
“quizNo”:quizNo==null?null:quizNo,
“chName”:chName==null?null:chName,
};
}
Map jsonData = {
    "quizzes": [
        {
            "quiz": {
                "quizName": "ch3-",
                "quizDate": "2019-12-06T01:23:35.748Z",
                "quizNo": 5,
                "chName": "ch3-",
            },
            "mark": 9
        },
        {
            "quiz": {             
                "quizName": "ch5-",
                "quizDate": "2020-01-07T11:57:15.862Z",
                "quizNo": 5,
                "chName": "ch5-",
            },
            "mark": 13.5
        },
    ],
};

  @override
  Widget build(BuildContext context) {
    return Container(
    alignment:Alignment.center,
    child:ListView.builder(
    itemCount:jsonData['quizzes'].length,
    shrinkWrap:true,
     itemBuilder:(con,ind){
       return ListTile(
       title:Text(jsonData['quizzes'][ind]['quiz']['quizName']),
         subtitle:Text(jsonData['quizzes'][ind]['quiz']['quizDate'])
       );
     }
    )
    );
  }
// To parse this JSON data, do
//
//     final quizzes = quizzesFromJson(jsonString);

import 'dart:convert';

Quizzes quizzesFromJson(String str) => Quizzes.fromJson(json.decode(str));

String quizzesToJson(Quizzes data) => json.encode(data.toJson());

class Quizzes {
    final List<QuizElement> quizzes;

    Quizzes({
        this.quizzes,
    });

    factory Quizzes.fromJson(Map<String, dynamic> json) => Quizzes(
        quizzes: json["quizzes"] == null ? null : List<QuizElement>.from(json["quizzes"].map((x) => QuizElement.fromJson(x))),
    );

    Map<String, dynamic> toJson() => {
        "quizzes": quizzes == null ? null : List<dynamic>.from(quizzes.map((x) => x.toJson())),
    };
}

class QuizElement {
    final QuizQuiz quiz;
    final double mark;

    QuizElement({
        this.quiz,
        this.mark,
    });

    factory QuizElement.fromJson(Map<String, dynamic> json) => QuizElement(
        quiz: json["quiz"] == null ? null : QuizQuiz.fromJson(json["quiz"]),
        mark: json["mark"] == null ? null : json["mark"].toDouble(),
    );

    Map<String, dynamic> toJson() => {
        "quiz": quiz == null ? null : quiz.toJson(),
        "mark": mark == null ? null : mark,
    };
}

class QuizQuiz {
    final String quizName;
    final DateTime quizDate;
    final int quizNo;
    final String chName;

    QuizQuiz({
        this.quizName,
        this.quizDate,
        this.quizNo,
        this.chName,
    });

    factory QuizQuiz.fromJson(Map<String, dynamic> json) => QuizQuiz(
        quizName: json["quizName"] == null ? null : json["quizName"],
        quizDate: json["quizDate"] == null ? null : DateTime.parse(json["quizDate"]),
        quizNo: json["quizNo"] == null ? null : json["quizNo"],
        chName: json["chName"] == null ? null : json["chName"],
    );

    Map<String, dynamic> toJson() => {
        "quizName": quizName == null ? null : quizName,
        "quizDate": quizDate == null ? null : quizDate.toIso8601String(),
        "quizNo": quizNo == null ? null : quizNo,
        "chName": chName == null ? null : chName,
    };
}