[英]Dart key value with different data type
我有这个要发送到服务器的键值对:
String brand = "sony";
double price_val = 0.01,
ram_val = 0.01,
internal_val = 0.01,
kamera_val = 0.01;
var arguments = {
"brand": brand,
"price": price_val,
"ram": ram_val,
"internal": internal_val,
"kamera": kamera_val
};
但我收到了这个错误:
Error : type 'double' is not a subtype of type 'String' in type cast
如果我将其更改为.toString()
,服务器将给出另一个错误,因为值需要为double
。 我怎样才能准确地发送这些值?
编辑
看起来它在 http 请求上出错了:
http.post(url,
body: arguments,
headers: {"Content-Type": "application/json"}).then((onValue) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ResultPage(
onValue.body,
)));
});
如果您在请求标头中将application/json
设置为内容类型,则需要使用jsonEncode
将请求正文编码为 json
这是示例
http.post(url,
body: jsonEncode(arguments),
headers: {"Content-Type": "application/json"}).then((onValue) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ResultPage(
onValue.body,
)));
});
明确定义参数类型
final arguments = <String, Object>{
"brand": brand,
"price": price_val,
"ram": ram_val,
"internal": internal_val,
"kamera": kamera_val
};
您可以使用 dynamic 关键字:
final arguments = <String, dynamic>{
"brand": brand,
"price": price_val,
"ram": ram_val,
"internal": internal_val,
"kamera": kamera_val
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.