Flutter Post请求,嵌套JSON作为数据+BLoC模式



我曾尝试使用BLoC模式在Post Request中传递JSON。

jsonEncode(<String, String>{
'MobileNo': _emailController.value,
'Password': _passwordController.value,
'IPAddress': '192.168.0.1',
'Latitude' : '23.04503',
'Longitude': '72.55919',
"wauid" : 'd4KY17YySLC8-ROzs1RoJN:APA91bHMVz-4tw7cRIrEmBU2wHr_YW1RgV5HQfcfQp1YQwkamDPUimiPrfisezPuOgghJgHepXixsRh1Rl_eu75E9qss4RzxM6bGIgQdSo-S9TvynJsfdztz67LiaWbC9fs4xlCZnFQc'
});

我已经找到了使用jsonEncode传递JSON的所有解决方案,但在Flutter的Post Request中没有找到任何传递嵌套JSON的解决方案。

这是我传递的JSON:

{
"userMaster": {
"MobileNo": "8800112233",
"Password": "564452",
"Latitude": 23.04503,
"Longitude": 72.55919,
"IPAddress": "5f7f51e7-09f5-4cf2-87f3-ca5760f1ed57",
"wauid": "12312"
},
"loginInfo" : {
"UserID":0
}
}

有人能告诉我如何发送嵌套的JSON来发布Flutter的请求吗?

请尝试以下

Map<String, dynamic> payload = {
"userMaster": {
"MobileNo": "8800112233",
"Password": "564452",
"Latitude": 23.04503,
"Longitude": 72.55919,
"IPAddress": "5f7f51e7-09f5-4cf2-87f3-ca5760f1ed57",
"wauid": "12312"
},
"loginInfo" : {
"UserID":0
}
}    

Response response = await http.post(<URL>,body: json.encode(payload));

将JSON转换为模型并使用它总是一种很好的做法。

class UserDetails {
UserMaster userMaster;
LoginInfo loginInfo;
UserDetails({this.userMaster, this.loginInfo});
UserDetails.fromJson(Map<String, dynamic> json) {
userMaster = json['userMaster'] != null
? new UserMaster.fromJson(json['userMaster'])
: null;
loginInfo = json['loginInfo'] != null
? new LoginInfo.fromJson(json['loginInfo'])
: null;
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.userMaster != null) {
data['userMaster'] = this.userMaster.toJson();
}
if (this.loginInfo != null) {
data['loginInfo'] = this.loginInfo.toJson();
}
return data;
}
}
class UserMaster {
String mobileNo;
String password;
double latitude;
double longitude;
String iPAddress;
String wauid;
UserMaster(
{this.mobileNo,
this.password,
this.latitude,
this.longitude,
this.iPAddress,
this.wauid});
UserMaster.fromJson(Map<String, dynamic> json) {
mobileNo = json['MobileNo'];
password = json['Password'];
latitude = json['Latitude'];
longitude = json['Longitude'];
iPAddress = json['IPAddress'];
wauid = json['wauid'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['MobileNo'] = this.mobileNo;
data['Password'] = this.password;
data['Latitude'] = this.latitude;
data['Longitude'] = this.longitude;
data['IPAddress'] = this.iPAddress;
data['wauid'] = this.wauid;
return data;
}
}
class LoginInfo {
int userID;
LoginInfo({this.userID});
LoginInfo.fromJson(Map<String, dynamic> json) {
userID = json['UserID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['UserID'] = this.userID;
return data;
}
}

我已经将JSON转换为模型,现在您可以在任何需要的地方使用它。

最新更新