Salesforce中的对象在Google Apps Script/Javascript中被解释为字符串

Object from Salesforce is interpreted as a String in Google Apps Script/Javascript

本文关键字:Javascript 解释 字符串 Apps 对象 Google Salesforce Script      更新时间:2023-09-26

我们将Salesforce的数据拉入谷歌文档,谷歌应用程序脚本从Salesforce获得HTTP请求。我们有一个来自salesforce的名为"products"的对象,但谷歌应用程序脚本将其解释为字符串。

function doGet(product)
var productVar = product;
Logger.log(productVar);

结果是这样的:

"(OpportunityProduct1:{Product10Id=01726388aaa, Quantity=4.00, ListPrice=3.0, Sales_Price__A=3.00})"

我们可以将其作为Object,或者以任何方式将其转换为Object/list/array吗。

如果您相信var productObject = eval(productVar);不包含恶意代码,则可以简单地使用它。

首先使用JavaScript字符串方法编辑字符串。

function processString() {
  var originalStr = "(OpportunityProduct1:{Product10Id=01726388aaa, Quantity=4.00, ListPrice=3.00, Sales_Price__A=3.00})";
  var i=0, thisCharacter = "";
  //Remove spaces
  for (i=0;i<originalStr.length;i+=1) {
    thisCharacter = originalStr[i];
    //Logger.log(thisCharacter)
    if (thisCharacter === " ") {
      Logger.log(i);
      var front = originalStr.slice(0,i);
      var back = originalStr.slice(i+1);
      originalStr = front + back;
    };
  };
  Logger.log(originalStr)
  var strNewObject = "";
  var myRegEx = new RegExp("=","g");
  strNewObject = originalStr.replace(myRegEx, '":"');
  strNewObject = strNewObject.replace("{", '{"');
  strNewObject = strNewObject.replace("}", '"}');
  strNewObject = strNewObject.replace(/,/g, '","');
  strNewObject = strNewObject.replace("(", '{"'); //Need out curly brace for valid JSON
  strNewObject = strNewObject.replace(")", "}"); //Need out curly brace for valid JSON
  strNewObject = strNewObject.replace(":", '":'); //
  Logger.log('strNewObject: ' + strNewObject);
  var newObject = JSON.parse(strNewObject);
  Logger.log(newObject);
  Logger.log(typeof newObject);

  Logger.log(newObject.OpportunityProduct1.Quantity)
};

您可以使用JSON服务将字符串转换回对象:

var myNewObject = JSON.parse(productVar);

使用应用程序脚本编辑器中的快捷键"Ctrl"+"空格键"调出可用服务列表。