在googlesheets中解析JSON

在googlesheets中解析JSON,json,google-apps-script,google-sheets,google-sheets-formula,Json,Google Apps Script,Google Sheets,Google Sheets Formula,我是第一次使用JSON,所以请原谅我缺乏知识 我正在尝试使用JSON文件在Google工作表中填充数据。我只是不知道正确的语法。如何格式化JSON函数以正确访问数据并停止返回错误 我试图从这里提取数据: 进入谷歌表格 我已经加载了ImportJSON脚本,并用一个非常小的JSON文件()对其进行了测试,它可以像广告中那样工作,使用以下函数: =ImportJSON("http://date.jsontest.com", "/date") 然而,当我尝试将同一个函数与上面eddb.io中的JS

我是第一次使用JSON,所以请原谅我缺乏知识

我正在尝试使用JSON文件在Google工作表中填充数据。我只是不知道正确的语法。如何格式化JSON函数以正确访问数据并停止返回错误

我试图从这里提取数据:

进入谷歌表格

我已经加载了ImportJSON脚本,并用一个非常小的JSON文件()对其进行了测试,它可以像广告中那样工作,使用以下函数:

=ImportJSON("http://date.jsontest.com", "/date")
然而,当我尝试将同一个函数与上面eddb.io中的JSON一起使用时,我无法让它工作

我想做的是将“name”拉入A1,然后将一些属性拉入列中,如下所示:

name  id  type_name  rotational_period, etc. 
以下是指向我的测试的链接:

我没有带我的笔记本电脑,但我看到您收到了错误
SyntaxError:char2028(第132行)的预期流结束


我认为您从URL收到的数据太长了。

您可以使用
=IMPORTDATA(E1)
将整个数据块放入表格,然后
REGEXEXTRACT
所有需要的部分


这个变通方法怎么样

发行原因: 当我看到
https://eddb.io/archive/v6/bodies_recently.jsonl
,我注意到文件的扩展名是
jsonl
。所以当我检查从
https://eddb.io/archive/v6/bodies_recently.jsonl
,发现值是JSON行。这一点我已经提过了。另外,我可以确认官方文件最近说的
bodies\u.jsonl
是行分隔的JSON

解决方法: 不幸的是,ImportJSON无法直接解析JSON行的值。因此,需要修改脚本作为解决方法。在共享电子表格中,ImportJSON脚本作为容器绑定脚本。在这次修改中,我修改了脚本。请修改如下

发件人: 在脚本编辑器的130-135行可以看到以下函数

function ImportJSONAdvanced(url, query, options, includeFunc, transformFunc) {
  var jsondata = UrlFetchApp.fetch(url);
  var object   = JSON.parse(jsondata.getContentText());

  return parseJSONObject_(object, query, options, includeFunc, transformFunc);
}
致: 请将上述函数替换为以下脚本,并保存脚本。然后,请将
=ImportJSON(“https://eddb.io/archive/v6/bodies_recently.jsonl“,“/id”)
再次发送到单元格

function ImportJSONAdvanced(url, query, options, includeFunc, transformFunc) {
  var jsondata = UrlFetchApp.fetch(url);
  var object = jsondata.getContentText().match(/{[\w\s\S].+}/g).map(function(e) {return JSON.parse(e)}); // Modified

  return parseJSONObject_(object, query, options, includeFunc, transformFunc);
}
结果:

注:
  • 尽管此修改脚本适用于
    https://eddb.io/archive/v6/bodies_recently.jsonl
    ,我不确定这个修改后的脚本是否适用于所有JSON行值。我为此道歉
参考资料:

如果我误解了您的问题,并且这不是您想要的结果,我很抱歉。

我猜是第二个json包含列表,无法转换为您正在引用的工作表,谢谢。json的格式也可能不正确。我试着把文件放在下面:它返回错误。数据负载是JSON行格式的,这与纯JSON不同。是的,输入错误,sry。。。固定的