json - 如何修复类型'_InternalLinkedHashMap' 不是类型转换错误中“String”类型的子类型
问题描述
我正在尝试进行异步 API 调用,并且不断收到此错误,我认为该错误是针对 body_y 的,但我不明白它在说什么或如何准确修复它。任何帮助表示赞赏
Future<void> _makePostRequest() async {
// set up POST request arguments
String url = 'https://myUrl';
//print(accessToken);
Map<String, String> headers = {"Authorization": "Bearer "+accessToken};
Map<String, String> body_y = {
"contactName": {
"firstName": "abc",
"middleName": "def",
"lastName": "ff",
"type": "RETAIL",
"companyName": "Company",
"tradeName": "Merchant"
}
,
"notificationPreferences": [
{
"notificationHandleType": "EMAIL",
"notificationHandle": "b@beta.yahoo.ac"
}
],
"notificationLanguage": "EN" };
// make POST request
Response response = await post(url, headers: headers, body: body_y);
// check the status code for the result
int statusCode = response.statusCode;
print(statusCode);
// this API passes back the id of the new item added to the body
String body = response.body;
}
解决方案
body
需要 aString
但 aMap<String, String
已通过。尝试编码为json
.
import 'dart:convert`;
// Change from Map<String,String> to Map<String,dynamic>
Map<String, dynamic> body_y = {
"contactName": {
"firstName": "abc",
"middleName": "def",
"lastName": "ff",
"type": "RETAIL",
"companyName": "Company",
"tradeName": "Merchant"
},
"notificationPreferences": [
{
"notificationHandleType": "EMAIL",
"notificationHandle": "b@beta.yahoo.ac"
}
],
"notificationLanguage": "EN",
};
Response response = await post(
url,
headers: headers,
body: json.encode(body_y), // encode to json
);
var body = json.decode(response.body) as Map<String,dynamic>; // decode json to map
String id = body['id']; // if it's named 'id'
推荐阅读
- java - 在 com.android.build.gradle.internal.dsl.BaseAppModuleExtension 类型的对象上找不到参数 [26] 的方法 ImplementationSdkVersion()
- sqlite - 关于外键约束的 SQL 错误
- r - 如何在 R 中正确编写 csv 或文本文件
- arrays - 数组推送仅在回调内部有效
- javascript - 导出为 Pdf 角度 6
- sql - 意外结果 SQL ORDER BY
- php - 如何使用 AJAX POST 请求触发一系列 PHP 代码?
- node.js - 具有不同 mongo 的 GET 请求在同一页面上查找结果
- git - 我可以将存储库克隆到 2 个不同的目录吗?
- google-app-maker - 如何为 appmaker 创建虚拟主机名或简单 url