You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Azure APIM策略合并JSON负载中的多值字段

Azure APIM JSON负载转换问题解决

问题概述

需要将输入的JSON负载转换为指定结构,核心需求是合并insurer_info中的first和last字段为fullname,同时调整字段名称映射。

当前负载

{
  "insurance_id": "2112",
  "insurer_info": {
    "first": "Tony",
    "last": "Stark"
  }
}

预期负载

{
  "id": "2112",
  "insurer_name": {
    "fullname": "Tony Stark"
  }
}

原代码错误点

  • 未定义变量dependentee,应该使用已创建的insurerName变量
  • 姓名合并逻辑错误:body["insurer_info"]["first"]["last"]是错误的嵌套访问方式,需分别获取first和last的值再拼接
  • 字段名不匹配:预期负载中键为insurer_name,原代码用了insurerName,需保持一致

修正后的APIM策略代码

<policies>
    <inbound>
        <base />
        <return-response>
            <set-status code="200" reason="ok" />
            <set-header name="Content-Type" exists-action="override">
                <value>application/json</value>
            </set-header>
            <set-body>@{ 
                var body = context.Request.Body.As<JObject>(true);

                var transformedBody = new JObject();
                // 映射insurance_id到id字段
                transformedBody["id"] = body["insurance_id"];
                
                // 创建insurer_name对象并拼接全名
                var insurerName = new JObject();
                insurerName["fullname"] = $"{body["insurer_info"]["first"]} {body["insurer_info"]["last"]}";
                transformedBody["insurer_name"] = insurerName;

                return transformedBody.ToString();               
            }</set-body>
        </return-response>
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

关键修正说明

  1. 变量名修正:替换错误的dependentee为已声明的insurerName变量
  2. 姓名拼接:使用字符串插值$"{first} {last}",正确获取insurer_info下的两个独立字段值并合并
  3. 字段名对齐:将transformedBody["insurerName"]改为transformedBody["insurer_name"],与预期负载的键名完全匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 23:31:00