ImportJSON.gs 解析嵌套的 JSON 数组

ImportJSON.gs parse nested JSON array

我在 Google 表格中使用 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)。

在函数 returns #REF

中使用 /data/0 的查询

如何使用此库在 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)
    

输出:


限制:

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

参考文献: