TypeScript如何将SalesForce Apex返回的特殊对象转换为数组?
解决步骤
1. 正确获取对象的键或值
你直接调用requestBody.keys()报错,是因为普通JavaScript对象没有实例方法keys(),必须使用Object的静态方法来获取:
// 获取对象所有键的数组 const keys = Object.keys(requestBody); // 获取对象所有值的数组 const values = Object.values(requestBody);
2. 解析嵌套的JSON字符串
从你提供的格式来看,请求体对象的键本身是一个JSON字符串(比如示例中的{"thingy":"stuff",...})。先提取这个字符串再解析:
// 假设对象仅包含一个键,提取该JSON字符串 const jsonStr = keys[0]; // 解析为标准JS对象 const parsedObj = JSON.parse(jsonStr);
3. 将解析后的对象转换为数组
根据需求选择转换方式:
- 转为键值对数组:
const keyValueArray = Object.entries(parsedObj); // 示例结果:[["thingy", "stuff"], ["otherThing", "moreStuff"], ["notAnActualKey", {random: ""}]]
- 转为值的数组:
const valueArray = Object.values(parsedObj); // 示例结果:["stuff", "moreStuff", {random: ""}]
- 转为键的数组:
const keyArray = Object.keys(parsedObj); // 示例结果:["thingy", "otherThing", "notAnActualKey"]
4. 排查不确定的结构
如果不清楚请求体的具体层级,可以先打印完整结构确认:
console.log(JSON.stringify(requestBody, null, 2));
内容的提问来源于stack exchange,提问作者yoni chanowitz
相关产品推荐
相关产品推荐

