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

如何遍历string[]类型SsNumber数组生成JSON对象用于转XML

遍历数组生成多节点JSON结构用于XML转换

要解决遍历SsNumber数组生成对应数量someRequest节点的问题,只需对数组做遍历映射,将每个元素传入getSomeRequest生成结构,再把结果以数组形式赋值给someRequest即可。大多数XML-JSON转换库(如xml2js)会自动将数组转换为多个同名XML节点。

修改后的代码

const SsNumber = ["123","234","345"];

// 重命名参数避免和全局变量同名,提升可读性
const getSomeRequest = (ssNum) => {
  return {
    $: {
      'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
      'xsi:type': "someType",
      key: ssNum,
      keyType: 'Nbr',
      version: "1.0",
      pageItems: "2",
      pageToken: '',
    },
  };
};

const mapCustomerInfoEnvelope = ({ SsNumber }) => {
  const envelope = {
    'SOAP-ENV:Envelope': {
      $: {
        'xmlns:SOAP-ENV': 'http://schemas.xmlsoap.org/soap/envelope/',
      },
      'SOAP-ENV:Header': "",
      'SOAP-ENV:Body': {
        Multiple: {
          $: {
            xmlns: "123",
          },
          MultipleRequest: {
            // 遍历数组生成每个someRequest节点
            someRequest: SsNumber.map(ssNum => getSomeRequest(ssNum))
          },
        },
      },
    },
  };

  return envelope;
};

关键修改说明

  • 使用Array.map()遍历SsNumber数组,为每个元素生成对应的someRequest结构
  • 将someRequest的值设置为映射后的数组,转换为XML时会自动生成对应数量的<someRequest>节点,每个节点的key匹配数组中的元素
  • 把getSomeRequest的参数名从SsNumber改为ssNum,避免和全局变量同名造成混淆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:00:04