Javascript ImportJSON.gs解析嵌套JSON数组

Javascript ImportJSON.gs解析嵌套JSON数组,javascript,json,google-apps-script,google-sheets,custom-function,Javascript,Json,Google Apps Script,Google Sheets,Custom Function,我正在使用Google Sheets中的ImportJSON库解析JSON文件。我遇到了一个非常奇怪的JSON文档,我不确定如何解析它。JSON文档如下所示: { "draw": 2, "recordsTotal": "80129", "recordsFiltered": "3988", "data": [ [ "28/08/202

我正在使用Google Sheets中的ImportJSON库解析JSON文件。我遇到了一个非常奇怪的JSON文档,我不确定如何解析它。JSON文档如下所示:

{
  "draw": 2,
  "recordsTotal": "80129",
  "recordsFiltered": "3988",
  "data": [
    [
      "28/08/2020",
      "US DOLLAR",
      "108.2221",
      "108.1224",
      "108.3218"
    ],
    [
      "27/08/2020",
      "US DOLLAR",
      "108.1529",
      "108.0529",
      "108.2529"
    ]
  ]
}
我有兴趣获得
/data
下的第0个索引以及该列表中的第三项(
108.2221

在函数中使用/data/0查询返回
#REF

如何使用此库在Google电子表格中实现这一点?

解决方案: 您可以创建自己的自定义函数

function myCustomFunction(url,pos) {
  
  const response = UrlFetchApp.fetch(url);
  const arr =JSON.parse(response.getContentText());
  return  arr['data'][0][pos-1];
}
并再次将其用作公式

  • 例如,要获取1st元素:

    =myCustomFunction("https://www.centralbank.go.ke/wp-admin/admin-ajax.php?action=get_wdtable&table_id=32",1)
    
    =myCustomFunction("https://www.centralbank.go.ke/wp-admin/admin-ajax.php?action=get_wdtable&table_id=32",3)
    
  • 3rd元素:

    =myCustomFunction("https://www.centralbank.go.ke/wp-admin/admin-ajax.php?action=get_wdtable&table_id=32",1)
    
    =myCustomFunction("https://www.centralbank.go.ke/wp-admin/admin-ajax.php?action=get_wdtable&table_id=32",3)
    

输出:


限制:
  • 您不能将任何
    url
    作为参数传递。json url需要有 你在问题中提到的结构
  • 此公式仅适用于
    数据
    字段

  • 参考资料:

    这就是您得到的价值吗?你能分享一份你的工作表或者你得到的输出截图吗?输入中分享的json。这就是我试图阅读的URL上的内容。使用/data/0的查询提供了#ref,您可以与我们共享该URL吗?URL:我发布了一个替代解决方案。请检查并让我知道它是否有用。这很有效。所以我接受了它,因为它很好地回答了我的问题。我现在才意识到,我使用了一个错误的有效载荷(我为美国数据过滤过)。我将尝试让脚本从返回的JSON文件中查找美元,并获得pos-1,其中pos=3:-)非常感谢!很高兴它有帮助!