我是 Flutter 的新手,我需要幫助來了解如何為包含 Flutter 中專案串列的引數格式化我的請求有效負載。
范圍: "receiverListRequest"
示例請求負載:
{
"id": "abcd12234555",
"amount": "100",
"receiverCount": "2",
"receiverListRequest": [
{
"phone": "9123456",
"id": "abcd12234555",
"name": "Mark",
"amount": "100"
},
{
"phone": "9123456",
"id": "abcd12234555",
"name": "Robert",
"amount": "520"
}
]
}
我可以到達這一步,現在卡住了,因為不知道如何格式化我的資料:
Future<SubmitDataModel> submitData(
{id,
amount,
receiverCount,
required Map<String, dynamic> receiverReqList}) async {
response = await dio.post(
'my_submit_URL',
data: {
'id': '$id',
'amount': '$amount',
'receiverCount': '$receiverCount',
'receiverListRequest': receiverReqList
}).then((value) {
if (value.statusCode == 200) {
response = value;
return SubmitDataModel.fromJson(response.data);
}
});
log('$response');
return SubmitDataModel.fromJson(response.data);
}
我被困在這里。
APIFunctions _apiCaller = APIFunctions();
_apiCaller
.submitRequest(
"id": "abcd12234555",
"amount": "100",
"receiverCount": "2",
"receiverListRequest": (// ***How to Add my list of data here??***))
.then((value) {
if (value.status == 200) {
// to do something here
}
});
uj5u.com熱心網友回復:
您可以在模型類中創建一個串列
說,你的回應也在 json 中給出一個串列,在模型類中創建一個串列變數。在你的情況下:-
String id;
String amount;
String receiverCount;
List<ReceiverListRequest> receiverListRequest;
在工廠方法內部,每當您參考新方法(或類)的串列變數呼叫時,您將在其中將這些串列值轉換為新類。
在你的情況下: -
receiverListRequest: List<ReceiverListRequest>.from(json["receiverListRequest"].map((x) => ReceiverListRequest.fromJson(x))),
您的 ReceiverListRequest 模型類將如下所示:-
class ReceiverListRequest {
ReceiverListRequest({
this.phone,
this.id,
this.name,
this.amount,
});
String phone;
String id;
String name;
String amount;
}
在該類中,您還有一個其他因子方法可以將動態字串回應轉換為 Map,就像您之前所做的那樣。
像這樣的東西:-
factory ReceiverListRequest.fromJson(Map<String, dynamic> json) => ReceiverListRequest(
phone: json["phone"],
id: json["id"],
name: json["name"],
amount: json["amount"],
);
Map<String, dynamic> toJson() => {
"phone": phone,
"id": id,
"name": name,
"amount": amount,
};
}
JSON 回應的完整 dart 類將如下所示
// To parse this JSON data, do
//
// final listRequest = listRequestFromJson(jsonString);
import 'dart:convert';
ListRequest listRequestFromJson(String str) => ListRequest.fromJson(json.decode(str));
String listRequestToJson(ListRequest data) => json.encode(data.toJson());
class ListRequest {
ListRequest({
this.id,
this.amount,
this.receiverCount,
this.receiverListRequest,
});
String id;
String amount;
String receiverCount;
List<ReceiverListRequest> receiverListRequest;
factory ListRequest.fromJson(Map<String, dynamic> json) => ListRequest(
id: json["id"],
amount: json["amount"],
receiverCount: json["receiverCount"],
receiverListRequest: List<ReceiverListRequest>.from(json["receiverListRequest"].map((x) => ReceiverListRequest.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"id": id,
"amount": amount,
"receiverCount": receiverCount,
"receiverListRequest": List<dynamic>.from(receiverListRequest.map((x) => x.toJson())),
};
}
class ReceiverListRequest {
ReceiverListRequest({
this.phone,
this.id,
this.name,
this.amount,
});
String phone;
String id;
String name;
String amount;
factory ReceiverListRequest.fromJson(Map<String, dynamic> json) => ReceiverListRequest(
phone: json["phone"],
id: json["id"],
name: json["name"],
amount: json["amount"],
);
Map<String, dynamic> toJson() => {
"phone": phone,
"id": id,
"name": name,
"amount": amount,
};
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383457.html
