无法解析Google Apps脚本中的所有JSON值(后跟逗号)

安德烈亚斯

我正在请求一个API,而我返回的json是这个

{
   "items":[
      {
         "id":"231321",
         "externalId":32131",
         "status":"published",
         "network":"facebook",
         "message":"message",
         "externalChannels":[
            "231312"
         ],
         "pictures":[
            picture"
         ],
         "type":"picture",
         "facebook":{
            "dark":false
         },
         "labels":[
            "bus",
            "train",
            "car"
         ],

当我尝试解析标签部分时,虽然我只获得第一个值,但没有另一个。我进行了一些谷歌搜索,发现它跟在逗号后面,但是我找不到任何解决方案。有什么想法吗?

编辑:使用下面的脚本,我可以在记录器上看到标签的所有值,但只有第一个值写在电子表格上。

function getdata() {
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName('api');
  var range = sheet.getRange("A:C");
  var response = UrlFetchApp.fetch("api call");
  var dataAll = JSON.parse(response.getContentText());
  var dataSet = dataAll.items;
  var rows = [],
    data;
  for (i = 0; i < dataSet.length; i++) {
    data = dataSet[i];

    rows.push([new Date(),data.labels]); //your JSON entities here
  }
  Logger.log(rows)
  //sheet.getRange(getlastRow() + 1, 1, rows.length, 2).setValues(rows);
  sheet.getRange(sheet.getLastRow() + 1, 1, rows.length, 2).setValues(rows);
日加诺奇卡

问题不是尾随逗号,而是json的结构-您在对象内部有一个对象

  • 如果您的JSON看起来像您的问题中描述的那样(我假设缺少括号和引号键入错误),则它不是字符串,但已经是有效的JSON对象,无需解析。
  • 确实,尝试解析非字符串会给您一个错误
  • 如果要访问JSON对象的各个元素,则可以例如将它们推入由键a和值分隔的数组中
  • 可以使用Object.keys方便地完成此操作

样品:

function myFunction() {
  var myObject = {
    "items":[
      {
        "id":"231321",
        "externalId":"32131",
        "status":"published",
        "network":"facebook",
        "message":"message",
        "externalChannels":[
          "231312"
        ],
        "pictures":[
          "picture"
        ],
        "type":"picture",
        "facebook":{
          "dark":false
        },
        "labels":[
          "bus",
          "train",
          "car"
        ],
      }
    ]
  }
  var data = myObject.items;
  var array = [];
  for (var i = 0; i< data.length; i++){
    var newJson = Object.keys(data[i]).map(function (key) { 
      return [key, data[i][key]]; 
    }); 
    for(var j = 0; j< newJson.length; j++){
      array.push(newJson[j]);
    }
  }
  Logger.log(array);
  Logger.log(array[0][0] + " is " + array[0][1]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在Google Apps脚本中解析来自UrlFetchApp的数据

Google应用脚本错误无法解析文本

无法解析google-services.json

无法使用Google Apps脚本解析SOAP XML响应

无法解析 Google BigQuery 中的日期信息

仅当网格中的所有值均为int时,Google Apps脚本ui启用按钮

从Google Apps脚本中的API解析JSON响应

使用Google Apps脚本从图表中获取所有系列

google apps脚本json解析错误

无法解析Google Places JSON响应-org.json.JSONException

无法从gradle中解析com.google.guava

wget:无法解析google colab中的主机地址

无法为Android Studio中的Google集成解析符号“ Auth”

使用Google的代码在Android中“无法解析符号'TAG'”

无法解压缩Zip,然后使用Google Apps脚本解析CSV

通过 Google Apps 脚本解析 XML 提要(无法读取未定义的属性“getChildren”)

在“ Google脚本/ JavaScript”列中查找“替换所有值”

无法在脚本中准确解析此 JSON?

Google Apps脚本:如何根据E列中的值从A列中提取值,并在一封电子邮件中发送所有值?

在 Google Apps Script 中解析为 JSON 后无法调用对象的一部分

无法解析网页中的所有链接

无法解析AuthService中的所有参数

使用Google Apps脚本删除Google表格中的所有过滤器

在Google Apps脚本中返回空值

如何在Java中解析Json文件时无法转换com.google.gson.JsonArray

IntelliJ IDEA中具有Gradle的Java项目:无法解析符号“ google”,但项目可以编译

无法在Google Go中添加最新日期而没有解析错误

无法解析JSON文件中的值

无法在Golang程序中解析json值