You need to enable JavaScript to run this app. 如何遍历JSON解码得到的Map提取键值并通过HTTP传递给服务端
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历JSON解码得到的Map提取键值并通过HTTP传递给服务端

遍历解码Map并完成http传参的实现
  • 当前通过json.decode得到的Map为扁平化键值对结构,其中的material[0][name]是完整的字符串类型键,并非Map的嵌套路径,无需做递归嵌套遍历
  • 直接调用Map的内置遍历方法即可提取所有参数名和对应参数值,核心遍历代码:
var decodedMap = json.decode(obj) as Map<String, dynamic>;
decodedMap.forEach((paramKey, paramValue) {
  // paramKey 为完整参数名,例如 material[0][name]
  // paramValue 为对应参数值,例如 BRC、2
  print('提取到参数:$paramKey = $paramValue');
});
  • http模块传参适配:
    Dart官方http包的表单POST请求可直接接收这类带中括号格式的键值对Map,无需手动重组嵌套结构,完整传参示例:
import 'package:http/http.dart' as http;

Future<void> submitParams(String rawJson) async {
  final params = json.decode(rawJson) as Map<String, dynamic>;
  final response = await http.post(
    Uri.parse("服务端接口地址"),
    // 直接将解码得到的Map作为请求体传入
    body: params,
  );
  // 响应处理逻辑
}
  • 实操注意事项:
    • 无需手动拆分键名拼接嵌套结构,当前的键格式本身符合绝大多数服务端表单接口的参数解析规则
    • 如果参数值为数字等非字符串类型,http模块会在发送请求时自动将其转换为字符串格式,无需手动做类型转换

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 05:54:03