Javascript google应用程序脚本中的JSON.concat()函数

Javascript google应用程序脚本中的JSON.concat()函数,javascript,json,google-apps-script,Javascript,Json,Google Apps Script,我曾尝试在Google App Script中连接两个JSON对象,但它总是给我以下错误: TypeError: Funktion concat in Objekt [object Object] nicht gefunden (Zeile 53, Datei "") 这个问题的解决方案是什么?我猜concat()函数不是Google应用程序脚本API的一部分 我想做的是: 从各种电子邮件中读取Schema.org JSON,并尝试将此数据保存在.JSON文件中 代码: function ex

我曾尝试在Google App Script中连接两个JSON对象,但它总是给我以下错误:

TypeError: Funktion concat in Objekt [object Object] nicht gefunden (Zeile 53, Datei "")
这个问题的解决方案是什么?我猜concat()函数不是Google应用程序脚本API的一部分

我想做的是: 从各种电子邮件中读取Schema.org JSON,并尝试将此数据保存在.JSON文件中

代码:

function extractFromGmail(subject,jsonName) {
  subject = "json";
  jsonName = "testjson";
  var rawData = "";
  var threads = GmailApp.search('subject:' + subject);  
  Logger.log("thread length: " + threads.length);

  var json;

  for(var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    var message = messages[0];
    rawData += message.getRawContent();
//    Logger.log("rawData from e-mail: " + rawData);
    if(rawData.search('itemscope') > -1)  {
      if(json === null) json = this.extractMicrodata(rawData, jsonName);
      else json.concat(this.extractMicrodata(rawData, jsonName));
    }
    if(rawData.search("json") > -1) {
      if(json === undefined) {
        Logger.log("undef");

        json = this.extractJSON(rawData, jsonName);
      }
      else {
        json = JSON.stringify(json);
        Logger.log(typeof json);   
        json = JSON.parse(json);
        Logger.log(typeof json); //this part is to test that it's a json-obj
        var result = this.extractJSON(rawData, jsonName)
        json = json.concat(result);
      }
    }
    Logger.log(JSON.stringify(json));
  } 
函数extractFromGmail(主题,jsonName){
subject=“json”;
jsonName=“testjson”;
var rawData=“”;
var threads=GmailApp.search('subject:'+subject);
Logger.log(“螺纹长度:”+螺纹.length);
var-json;
对于(var i=0;i-1){
如果(json==null)json=this.extractMicrodata(rawData,jsonName);
else json.concat(this.extractMicrodata(rawData,jsonName));
}
if(rawData.search(“json”)>-1){
如果(json==未定义){
Logger.log(“未定义”);
json=this.extractJSON(rawData,jsonName);
}
否则{
json=json.stringify(json);
Logger.log(json的类型);
json=json.parse(json);
Logger.log(typeof json);//这部分是为了测试它是否是json对象
var result=this.extractJSON(rawData,jsonName)
json=json.concat(结果);
}
}
Logger.log(JSON.stringify(JSON));
} 
没有Object.concat()方法。我猜您真正想要的是创建一个数组,然后使用.push()将对象添加到该数组中,然后立即对整个数组进行字符串化

但是您的问题措辞太模糊,无法确定您需要的是什么。

没有Object.concat()方法。我猜您真正想要的是创建一个数组,然后使用.push()将对象添加到该数组中,然后立即将整个数组字符串化


但是你的问题措辞太模糊,无法确定你需要的是什么。

调试它。log json contentscheck这个问题:调试它。log json contentscheck这个问题:实际上我想在谷歌应用程序脚本中连接两个json对象。但是似乎没有这样的concat()GAS.extractJSON中的函数给了我一个JSON对象,我想把它连接到已经存在的JSON变量,它也是一个JSON对象。你认为对象连接会是什么样子?如果有两个对象X和Y,其中X={a:2,B:3}和Y={a:3,C:4},你认为X.concat(Y)的结果如何是吗?这就是我所想的结果:{[{A:2,B:3}{A:3,C:4}}}那么你想要的是一个对象内部的数组,对象作为数组的元素:var jsonStuff={elements:[]};jsonStuff.elements.push({A:2,B:3});jsonStuff.elements.push({A:3,C:4});注意
{A:2,B:3}{A:3,C:4}
正如您所写,它不是一个有效的对象,但是
{elements:[{a:2,B:3}{a:3,C:4}]}
是一个有效的对象。如果您不需要封装的“jsonStuff”,您当然也可以单独使用一个简单的数组。实际上,我想在Google应用程序脚本中连接两个JSON对象。然而,似乎没有这样的concat()GAS.extractJSON中的函数给了我一个JSON对象,我想把它连接到已经存在的JSON变量,它也是一个JSON对象。你认为对象连接会是什么样子?如果有两个对象X和Y,其中X={a:2,B:3}和Y={a:3,C:4},你认为X.concat(Y)的结果如何是吗?这就是我所想的结果:{[{A:2,B:3}{A:3,C:4}}}那么你想要的是一个对象内部的数组,对象作为数组的元素:var jsonStuff={elements:[]};jsonStuff.elements.push({A:2,B:3});jsonStuff.elements.push({A:3,C:4});注意
{A:2,B:3}{A:3,C:4}
正如您所写,它不是一个有效的对象,但是
{elements:[{a:2,B:3}{a:3,C:4}]}
是一个有效的对象。如果您不需要封装的“jsonStuff”,当然也可以单独使用一个简单的数组。