#flutter
Вопрос:
Я хочу получить все данные о субъектах в виде списка, такие как имя субъекта, изображение и т. Д.
Я получаю данные из простого json, но не могу получить их из списка json.
Ответ выглядит следующим образом,
{
"success": 1,
"subject": [
{
"subject_id": "5e32874c714fa",
"subject_name": "Account",
"image": "upload/subject/Account.png",
"active": "1",
"standard_id": "5d1594e283e1a",
"medium_id": "5d15938aa1344"
},
{
"subject_id": "5da9ff659fb7c",
"subject_name": "Biology",
"image": "upload/subject/03_logo-1164x484.png",
"active": "1",
"standard_id": "5d1594e283e1a",
"medium_id": "5d15938aa1344"
},
{
"subject_id": "5da9ff990b1c6",
"subject_name": "Chemisty",
"image": "upload/subject/02_logo-1168x490.png",
"active": "1",
"standard_id": "5d1594e283e1a",
"medium_id": "5d15938aa1344"
},
{
"subject_id": "5de76afbd064e",
"subject_name": "Computer",
"image": "upload/subject/07_logo-1169x486.png",
"active": "1",
"standard_id": "5d1594e283e1a",
"medium_id": "5d15938aa1344"
},
{
"subject_id": "5d788906c431b",
"subject_name": "Devsatya Paperset March 2020",
"image": "upload/subject/04_logo-1174x491.png",
"active": "1",
"standard_id": "5d1594e283e1a",
"medium_id": "5d15938aa1344"
}
]
}
И я создал класс модели из app.quicktype.io/ как показано ниже.
// To parse this JSON data, do
//
// final subjectByUser = subjectByUserFromJson(jsonString);
import 'dart:convert';
SubjectByUser subjectByUserFromJson(String str) => SubjectByUser.fromJson(json.decode(str));
String subjectByUserToJson(SubjectByUser data) => json.encode(data.toJson());
class SubjectByUser {
SubjectByUser({
this.success,
this.subject,
});
int success;
List<Subject> subject;
factory SubjectByUser.fromJson(Map<String, dynamic> json) => SubjectByUser(
success: json["success"],
subject: List<Subject>.from(json["subject"].map((x) => Subject.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"success": success,
"subject": List<dynamic>.from(subject.map((x) => x.toJson())),
};
}
class Subject {
Subject({
this.subjectId,
this.subjectName,
this.image,
this.active,
this.standardId,
this.mediumId,
});
String subjectId;
String subjectName;
String image;
String active;
String standardId;
String mediumId;
factory Subject.fromJson(Map<String, dynamic> json) => Subject(
subjectId: json["subject_id"],
subjectName: json["subject_name"],
image: json["image"],
active: json["active"],
standardId: json["standard_id"],
mediumId: json["medium_id"],
);
Map<String, dynamic> toJson() => {
"subject_id": subjectId,
"subject_name": subjectName,
"image": image,
"active": active,
"standard_id": standardId,
"medium_id": mediumId,
};
}
Итак, как я могу получить все сведения о субъектах, такие как имя субъекта и изображение, в виде списка?
например, изображение с левой стороны и имя с правой стороны для всех предметов.
Ответ №1:
Если у вас есть список:
List<Subject> list = []; // <-- set the list
ListView.builder(itemCount: list.length, itemBuilder: (context, index) {
return Column(children: [
Text(list[index].subjectId),
Text(list[index].subjectName),
Text(list[index].image),
Text(list[index].active),
Text(list[index].standardId),
Text(list[index].mediumId), ],)
},
Комментарии:
1. я должен отображать записи, основанные на пользователях, поэтому мне не нужно использовать класс SubjectByUser в функции?
2. как я могу отображать записи, используя класс SubjectByUser?
3. Тогда у вас будет субъектный пользователь, и вы получите из него список. список = субъект_пользователь.субъект;