Google Apps Script split('\n') 不适用于 Google 管理目录中的数据

Google Apps Script split('\n') does not work with data from the Goggle Admin Directory

我正在通过 Google Admin Directory 检索用户数据,我在其中将一些数据存储在客户模式中。在此客户数据的一个字段中,我存储了一个包含 \n 的字符串,因此我想将其拆分为一个数组。但由于某种原因,这不起作用,我想了解为什么以及如何解决这个问题。这是设置:

我转到 G Suite 管理面板并转到一个用户的架构并输入字符串:Doesnt \n work

在 Apps 脚本中,我检索了该数据并将其拆分。但它并没有把它拆分成一个数组:

function listAllUsers(oa) {
var pageToken, page;
var userDatas = [];
do {
page = AdminDirectory.Users.list({
  customer: 'my_customer',
  query: 'orgUnitPath:'+oa,
  orderBy: 'givenName',
  projection: 'full',
  maxResults: 100,
  pageToken: pageToken
});

var theData ='';
var users = page.users;
if (users) {
  for (var i = 0; i < users.length; i++) {
    var user = users[i];
    

    if( (typeof user.customSchemas !== "undefined") && ('myCustomSchema' in user.customSchemas)){
 
     theData = user.customSchemas.myCustomSchema.myCustomSchemaField;
     Logger.log(theData); //  this shows Doesnt \n work
     var splitarray = theData.split('\n'); // this shows this shows [Doesnt \n work]
     theData = 'Doesnt \n work';
     splitarray = theData.split('\n'); // this shows [ Doesnt , work] which is correct

    }
    else{
      Logger.log("no data");
    }

}
pageToken = page.nextPageToken;
} while (pageToken);
Logger.log(userDatas);
return userDatas;
}

这怎么可能?我必须先做一些编码吗?

我怀疑该字符串实际上有一个反斜杠后跟字母 n,而不是其中有一个换行符。例如,在字符串字面量中:"Doesnt \n work"(打印时看起来像 Doesnt \n work)。

你可以通过这样做来证明这一点:

Logger.log(theData.indexOf("\"));

...这将为您提供找到反斜杠的索引(-1 如果没有),或者这个:

Logger.log(theData.split("").map(function(ch) { return ch + "(" + ch.charCodeAt(0) + ")";}).join(", "));

...显示字符串中的每个代码单元及其字符代码。