I have JSON like this
{
"status": "true",
"data": [
{
"idpekerjaan": "1",
"namapekerjaan": "Apel Pagi / Sore",
"subpekerjaan": [
{
"idsubpekerjaan": "2",
"namasubpekerjaan": "Apel Pagi/Sore",
"standarwaktu": "15"
},
{
"idsubpekerjaan": "3",
"namasubpekerjaan": "Apel Pagi/Sore",
"standarwaktu": "20"
}
]
},
{
"idpekerjaan": "2",
"namapekerjaan": "Upacara",
"subpekerjaan": [
{
"idsubpekerjaan": "10",
"namasubpekerjaan": "Upacara",
"standarwaktu": "60"
},
{
"idsubpekerjaan": "11",
"namasubpekerjaan": "Upacara",
"standarwaktu": "90"
}
]
},
}
Saya mempunyai fungsi-fungsi:
class Localization {
final List <DataPekerjaan> pekerjaan;
final List <SubPekerjaan> subpekerjaan;
Localization({this.pekerjaan, this.subpekerjaan});
factory Localization.fromJson(Map<String, dynamic> json) {
return Localization(
subpekerjaan: parseStates(json),
pekerjaan: parseProvinces(json),
);
}
static List<SubPekerjaan> parseStates(statesJson) {
List<DataPekerjaan> cari = parseProvinces(statesJson);
var slist = ???????????????????? as List;
List<SubPekerjaan> statesList =
slist.map((data) => SubPekerjaan.fromJson(data)).toList();
return statesList;
}
static List<DataPekerjaan> parseProvinces(provincesJson) {
var plist = provincesJson['data'] as List;
List<DataPekerjaan> provincesList =
plist.map((data) => DataPekerjaan.fromJson(data)).toList();
return provincesList;
}
}
class SubPekerjaan {
final String idSubPekerjaan;
final String namaSubPekerjaan;
final String standarWaktu;
SubPekerjaan({this.idSubPekerjaan, this.namaSubPekerjaan, this.standarWaktu});
factory SubPekerjaan.fromJson(Map<String, dynamic> parsedJson){
return SubPekerjaan(idSubPekerjaan: parsedJson['idsubpekerjaan'], namaSubPekerjaan: parsedJson['namasubpekerjaan'], standarWaktu: parsedJson['standarwaktu']);
}
}
class DataPekerjaan {
final String idPekerjaan;
final String namaPekerjaan;
final List<String> subPekerjaan;
DataPekerjaan({this.idPekerjaan, this.namaPekerjaan, this.subPekerjaan});
factory DataPekerjaan.fromJson(Map<String, dynamic> parsedJson) {
return DataPekerjaan(idPekerjaan: parsedJson['idpekerjaan'], namaPekerjaan: parsedJson['namapekerjaan'], subPekerjaan: parsedJson["subpekerjaan"]);
}
}
I want to retrieve the contents of an array of data and then I create a List and then I also want to take the contents of an array of subpekerjaan so that it becomes a separate data. How can I insert each of those arrays into a function that I already have, especially in the ListparseStates (statesJson). What should I fill in the question mark? Then is it true how I declare the data type List subPekerjaan on the DataPekerjaan class?
First your json is invalid (VAlidate at https://jsonlint.com/ ) it should be
{
"status": "true",
"data": [
{
"idpekerjaan": "1",
"namapekerjaan": "Apel Pagi / Sore",
"subpekerjaan": [
{
"idsubpekerjaan": "2",
"namasubpekerjaan": "Apel Pagi/Sore",
"standarwaktu": "15"
},
{
"idsubpekerjaan": "3",
"namasubpekerjaan": "Apel Pagi/Sore",
"standarwaktu": "20"
}
]
},
{
"idpekerjaan": "2",
"namapekerjaan": "Upacara",
"subpekerjaan": [
{
"idsubpekerjaan": "10",
"namasubpekerjaan": "Upacara",
"standarwaktu": "60"
},
{
"idsubpekerjaan": "11",
"namasubpekerjaan": "Upacara",
"standarwaktu": "90"
}
]
}
]
}
Now try with class
// To parse this JSON data, do
//
// final myModel = myModelFromJson(jsonString);
import 'dart:convert';
MyModel myModelFromJson(String str) => MyModel.fromJson(json.decode(str));
String myModelToJson(MyModel data) => json.encode(data.toJson());
class MyModel {
String status;
List<Datum> data;
MyModel({
this.status,
this.data,
});
factory MyModel.fromJson(Map<String, dynamic> json) => MyModel(
status: json["status"],
data: List<Datum>.from(json["data"].map((x) => Datum.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"status": status,
"data": List<dynamic>.from(data.map((x) => x.toJson())),
};
}
class Datum {
String idpekerjaan;
String namapekerjaan;
List<Subpekerjaan> subpekerjaan;
Datum({
this.idpekerjaan,
this.namapekerjaan,
this.subpekerjaan,
});
factory Datum.fromJson(Map<String, dynamic> json) => Datum(
idpekerjaan: json["idpekerjaan"],
namapekerjaan: json["namapekerjaan"],
subpekerjaan: List<Subpekerjaan>.from(json["subpekerjaan"].map((x) => Subpekerjaan.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"idpekerjaan": idpekerjaan,
"namapekerjaan": namapekerjaan,
"subpekerjaan": List<dynamic>.from(subpekerjaan.map((x) => x.toJson())),
};
}
class Subpekerjaan {
String idsubpekerjaan;
String namasubpekerjaan;
String standarwaktu;
Subpekerjaan({
this.idsubpekerjaan,
this.namasubpekerjaan,
this.standarwaktu,
});
factory Subpekerjaan.fromJson(Map<String, dynamic> json) => Subpekerjaan(
idsubpekerjaan: json["idsubpekerjaan"],
namasubpekerjaan: json["namasubpekerjaan"],
standarwaktu: json["standarwaktu"],
);
Map<String, dynamic> toJson() => {
"idsubpekerjaan": idsubpekerjaan,
"namasubpekerjaan": namasubpekerjaan,
"standarwaktu": standarwaktu,
};
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.