javascript - 将 xml 请求转换为具有重复节点名称的 json 请求

标签 javascript json

我尝试将数据推送到第 3 方 Web 服务,特别是将 xml 请求转换为 json 请求(与 Node Soap 一起使用)。

下面是一个可以正常工作的原始 xml 请求的示例:

<EformData>
            <EformFields>
               <FieldName>txt_customername</FieldName>
               <FieldValue>Scott</FieldValue>
            </EformFields>
            <EformFields>
               <FieldName>txt_organisation</FieldName>
               <FieldValue>My Orginisation</FieldValue>
            </EformFields>
            <EformFields>
               <FieldName>txt_address</FieldName>
               <FieldValue>My Address</FieldValue>
            </EformFields>
            <EformFields>
               <FieldName>txt_telnumber</FieldName>
               <FieldValue>123456</FieldValue>
            </EformFields>
</EformData>

我遇到的问题是尝试将这些重复节点转换为一个对象,新的对象数据将被最后一个请求覆盖。

这是我到目前为止所拥有的:

var formValues = {
    "txt_customername": "Scott",
    "txt_organisation": "My Orginisation",
    "txt_address": "My Address",
    "txt_telnumber": "123456"
}

// Container
var EformData = { 
        "EformFields": {
        }  
};

// populate the object
for (var key in formValues) {            
    EformData.EformFields.FieldName = [key];
    EformData.EformFields.FieldValue = formValues[key];
}

如下所示,只有最后一个请求存储在对象中,其他请求都被覆盖:

 <EformData>
    <EformFields>
    <FieldName>txt_telnumber</FieldName>
    <FieldValue>123456</FieldValue>
    </EformFields>
</EformData>

是否可以通过这种方式构建一个对象来匹配原始重复的 xml 节点数据?

最佳答案

你的json的数据结构应该是EformData有一个EformFields对象数组,它有FieldName属性>FieldValue

var formValues = {
    "txt_customername": "Scott",
    "txt_organisation": "My Orginisation",
    "txt_address": "My Address",
    "txt_telnumber": "123456"
}

// Container
var EformData = { 
    "EformFields": []  
};

// populate the object
for (var key in formValues) {            
    EformData.EformFields.push({
        "FieldName": key,
        "FieldValue": formValues[key]
    });
}

关于javascript - 将 xml 请求转换为具有重复节点名称的 json 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49730790/

相关文章:

java - 如何解决无限递归(org.codehaus.jackson.map.JsonMappingException)

json - 在flutter中基于POST方法的json结果返回小部件

javascript 以图形方式比较两个 JSON/XML 对象

php - Mysql 正则表达式按数字选择

Javascript 类型 'false' 无法分配给类型 'string'

javascript - 在全屏模式 Internet Explorer 中检测事件变化

javascript - 过滤和克隆对象属性

javascript - 延迟加载 vue-i18n 中 `en.js` 或 `ja.js` 的格式是什么

javascript - 用 jasmine 跟踪函数执行时间

javascript - 下拉菜单上的多个属性选择器?