我有這個 API 的回應
{
"error": "",
"success": {
"data": [
{
"id": "00005432",
"channel": "B22",
"case_status_id": "1",
"case_type_id": "0",
"provider_group_id": "1",
"user_id": "78",
"contact_id": null,
"client_id": "23982",
"subject": "parallala",
"description": "",
"latest_development": "",
"priority": "medium",
"caseArrivalDate": "2022-08-29",
"arrivalDate": "2022-08-29",
"dueDate": null,
"closedOn": null,
"statusComments": "dsdde 663171471 (ndnendn ))////#-#-&# # # # #(",
"category": "edefrfr",
"caseValue": "0.00",
"internalReference": null,
"externalizeLawyers": "no",
"createdOn": "2022-08-29 10:59:46",
"createdBy": "14",
"modifiedOn": "2022-09-27 18:35:43",
"requestedByName": null,
"legal_case_stage_id": null,
"caseClientPosition": null,
"clientForeignName": null
}
],
"totalRows": "1122",
"dbDriver": "MYSQL"
}
}
我認為它是一個 Map(keys,values) 并且在 key(success) 里面我們有另一個 Map
我如何才能訪問特定元素?
uj5u.com熱心網友回復:
我將假設這個值被分配給一個地圖型別變數,我將它命名為回應
所以要訪問 id :
response["success"]["data"][0]["id"]
uj5u.com熱心網友回復:
您可以將您的實體提供json給https://app.quicktype.io/以獲取基于的模型,這是您的 json 模型的示例:
// To parse this JSON data, do
//
// final myModel = myModelFromMap(jsonString);
import 'dart:convert';
MyModel myModelFromMap(String str) => MyModel.fromMap(json.decode(str));
String myModelToMap(MyModel data) => json.encode(data.toMap());
class MyModel {
MyModel({
this.error,
this.success,
});
String error;
Success success;
factory MyModel.fromMap(Map<String, dynamic> json) => MyModel(
error: json["error"],
success: Success.fromMap(json["success"]),
);
Map<String, dynamic> toMap() => {
"error": error,
"success": success.toMap(),
};
}
class Success {
Success({
this.data,
this.totalRows,
this.dbDriver,
});
List<Datum> data;
String totalRows;
String dbDriver;
factory Success.fromMap(Map<String, dynamic> json) => Success(
data: List<Datum>.from(json["data"].map((x) => Datum.fromMap(x))),
totalRows: json["totalRows"],
dbDriver: json["dbDriver"],
);
Map<String, dynamic> toMap() => {
"data": List<dynamic>.from(data.map((x) => x.toMap())),
"totalRows": totalRows,
"dbDriver": dbDriver,
};
}
class Datum {
Datum({
this.id,
this.channel,
this.caseStatusId,
this.caseTypeId,
this.providerGroupId,
this.userId,
this.contactId,
this.clientId,
this.subject,
this.description,
this.latestDevelopment,
this.priority,
this.caseArrivalDate,
this.arrivalDate,
this.dueDate,
this.closedOn,
this.statusComments,
this.category,
this.caseValue,
this.internalReference,
this.externalizeLawyers,
this.createdOn,
this.createdBy,
this.modifiedOn,
this.requestedByName,
this.legalCaseStageId,
this.caseClientPosition,
this.clientForeignName,
});
String id;
String channel;
String caseStatusId;
String caseTypeId;
String providerGroupId;
String userId;
dynamic contactId;
String clientId;
String subject;
String description;
String latestDevelopment;
String priority;
DateTime caseArrivalDate;
DateTime arrivalDate;
dynamic dueDate;
dynamic closedOn;
String statusComments;
String category;
String caseValue;
dynamic internalReference;
String externalizeLawyers;
DateTime createdOn;
String createdBy;
DateTime modifiedOn;
dynamic requestedByName;
dynamic legalCaseStageId;
dynamic caseClientPosition;
dynamic clientForeignName;
factory Datum.fromMap(Map<String, dynamic> json) => Datum(
id: json["id"],
channel: json["channel"],
caseStatusId: json["case_status_id"],
caseTypeId: json["case_type_id"],
providerGroupId: json["provider_group_id"],
userId: json["user_id"],
contactId: json["contact_id"],
clientId: json["client_id"],
subject: json["subject"],
description: json["description"],
latestDevelopment: json["latest_development"],
priority: json["priority"],
caseArrivalDate: DateTime.parse(json["caseArrivalDate"]),
arrivalDate: DateTime.parse(json["arrivalDate"]),
dueDate: json["dueDate"],
closedOn: json["closedOn"],
statusComments: json["statusComments"],
category: json["category"],
caseValue: json["caseValue"],
internalReference: json["internalReference"],
externalizeLawyers: json["externalizeLawyers"],
createdOn: DateTime.parse(json["createdOn"]),
createdBy: json["createdBy"],
modifiedOn: DateTime.parse(json["modifiedOn"]),
requestedByName: json["requestedByName"],
legalCaseStageId: json["legal_case_stage_id"],
caseClientPosition: json["caseClientPosition"],
clientForeignName: json["clientForeignName"],
);
Map<String, dynamic> toMap() => {
"id": id,
"channel": channel,
"case_status_id": caseStatusId,
"case_type_id": caseTypeId,
"provider_group_id": providerGroupId,
"user_id": userId,
"contact_id": contactId,
"client_id": clientId,
"subject": subject,
"description": description,
"latest_development": latestDevelopment,
"priority": priority,
"caseArrivalDate": "${caseArrivalDate.year.toString().padLeft(4, '0')}-${caseArrivalDate.month.toString().padLeft(2, '0')}-${caseArrivalDate.day.toString().padLeft(2, '0')}",
"arrivalDate": "${arrivalDate.year.toString().padLeft(4, '0')}-${arrivalDate.month.toString().padLeft(2, '0')}-${arrivalDate.day.toString().padLeft(2, '0')}",
"dueDate": dueDate,
"closedOn": closedOn,
"statusComments": statusComments,
"category": category,
"caseValue": caseValue,
"internalReference": internalReference,
"externalizeLawyers": externalizeLawyers,
"createdOn": createdOn.toIso8601String(),
"createdBy": createdBy,
"modifiedOn": modifiedOn.toIso8601String(),
"requestedByName": requestedByName,
"legal_case_stage_id": legalCaseStageId,
"caseClientPosition": caseClientPosition,
"clientForeignName": clientForeignName,
};
}
現在通過這個模型你可以轉換你的 json
uj5u.com熱心網友回復:
例如。那是我的資料
const String _SexData = """[
{
"sex": "Se?iniz / Choice",
"x": 1000
},
{
"sex": "Male",
"x": 1001
},
{
"sex": "Female",
"x": 1002
}
]""";
我叫它;
DropdownButton<int>(
iconEnabledColor: Colors.blue,
dropdownColor: const Color.fromARGB(255, 28, 185, 242),
style: const TextStyle(color: Colors.black),
value: sex?.x ?? 1000,
items: model1.sexs.map((a) {
return DropdownMenuItem(
child: Text(a.sex,
style: const TextStyle(color: Colors.white)),
value: a.x,
onTap: () {
setState(() {
sex = a;
});
},
);
}).toList(),
onChanged: (s) {},
),
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/509920.html
上一篇:顫動如何洗掉串列中的特定值
