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

WSO2 ESB中XML转JSON以适配Salesforce Rest API更新SObject

实现XML到指定JSON格式的转换方法

我来分享几个实用的实现方案,帮你把给定的XML转换成Salesforce更新API所需的JSON格式:

方法1:Python + xmltodict库(通用脚本场景)

这是最省心的方式,适合用Python做集成脚本的场景:

  1. 先安装依赖库:
pip install xmltodict
  1. 编写转换代码:
import xmltodict
import json

# 你的原始XML内容
xml_input = """<body><fandV><name>Acount Name</name><description>Account Description</description></fandV></body>"""

# 解析XML为字典
parsed_data = xmltodict.parse(xml_input)
# 提取fandV节点下的键值对
fandv_dict = parsed_data['body']['fandV']
# 转换为JSON字符串
target_json = json.dumps(fandv_dict)

print(target_json)
# 输出结果:{"name":"Acount Name","description":"Account Description"}

方法2:集成工具内置转换(比如Postman/MuleSoft)

如果是在API集成工具里操作,直接用工具自带的XML转JSON功能即可:

Postman示例(Pre-request Script)

// 获取请求里的XML原始内容
const xmlBody = pm.request.body.raw;
// 转换XML为JSON对象
const xmlJson = xml2Json(xmlBody);
// 提取fandV节点的数据
const fieldAndValue = xmlJson.body.fandV;
// 将结果存入环境变量,后续更新请求直接引用
pm.environment.set("fieldandvalue", JSON.stringify(fieldAndValue));

方法3:Apex代码(Salesforce内部处理)

如果是在Salesforce Apex中接收XML并转换,用DOM解析实现:

public class XmlToSalesforceJson {
    public static String convertToFieldValueJson(String xmlContent) {
        Dom.Document xmlDoc = new Dom.Document();
        xmlDoc.load(xmlContent);
        Dom.XmlNode rootNode = xmlDoc.getRootElement();
        Dom.XmlNode fandvNode = rootNode.getChildElement('fandV', null);
        
        Map<String, String> fieldMap = new Map<String, String>();
        for (Dom.XmlNode childNode : fandvNode.getChildElements()) {
            fieldMap.put(childNode.getName(), childNode.getText().trim());
        }
        
        return JSON.serialize(fieldMap);
    }

    // 测试用例
    public static void testConversion() {
        String testXml = '<body><fandV><name>Acount Name</name><description>Account Description</description></fandV></body>';
        String resultJson = convertToFieldValueJson(testXml);
        System.debug('转换结果:' + resultJson);
    }
}

方法4:简单正则匹配(仅适用于结构固定的简单XML)

如果XML结构永远像示例这么简单,也可以用正则快速提取:

import re
import json

xml_input = """<body><fandV><name>Acount Name</name><description>Account Description</description></fandV></body>"""

# 匹配所有标签和对应内容
tag_matches = re.findall(r'<(\w+)>(.*?)</\1>', xml_input)
# 过滤掉body和fandV标签,生成目标字典
result_dict = {key: value for key, value in tag_matches if key not in ['body', 'fandV']}
target_json = json.dumps(result_dict)

print(target_json)

这些方案都能精准输出你需要的JSON格式,直接传入Salesforce更新函数的fieldandvalue参数即可,根据你的实际使用场景选择最合适的就行~

内容的提问来源于stack exchange,提问作者nad.SN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:24:54