在使用node-soap的响应中将XML字段转换为XML时,我希望将字段强制为数组,即使它包含一个子对象也是如此。

如果只有一个孩子,则将字段解释为对象。请参见下面的示例:

// Below gives {ArrayOfItems: {Item: { name: 'foo', ... }}
// But I'd like it to be {ArrayOfItems: {Item: [{name: 'foo', ... }]}
<ArrayOfItems>
  <Item>
    ...
  </Item>
</ArrayOfItems>

// Below gives  {ArrayOfItems: {Item: [{ name: 'foo', ... }, { name: 'bar', ... }]}
<ArrayOfItems>
  <Item>
    ...
  </Item>
  <Item>
    ...
  </Item>
</ArrayOfItems>


从xml转换为对象时,如何强制将字段解析为数组?

最佳答案

LoopBack Enterprise SOAP连接器和节点肥皂都存在相同的问题。

我发现最简单的解决方法是使用简单的方法执行以下操作:

function forceArray(array) {
      if (!array || Array.isArray(array))
        return array;
      else
        return [array];
}


这有帮助吗?

09-04 03:47