如何从URL直接导入JSON数据到Google Sheets?
如何将公开API的JSON数据导入Google Sheets并提取特定字段
问题背景
尝试将公开API的JSON数据导入Google Sheets(示例接口:https://jsonplaceholder.typicode.com/users/1),原始JSON结构如下:
{"id":1,"name":"Leanne Graham","username":"Bret","email":"Sincere@april.biz","address":{"street":"Kulas Light","suite":"Apt. 556","city":"Gwenborough","zipcode":"92998-3874","geo":{"lat":"-37.3159","lng":"81.1496"}},"phone":"1-770-736-8031 x56442","website":"hildegard.org","company":{"name":"Romaguera-Crona","catchPhrase":"Multi-layered client-server neural-net","bs":"harness real-time e-markets"}}
使用IMPORTDATA函数时,逗号会被当作分隔符拆分内容,属性名引号丢失;用TEXTJOIN拼接会产生多余逗号;指定虚拟分隔符的方案存在字符冲突风险。最终目标是提取JSON中的特定属性(如name字段),需要可靠的导入方法。
解决方案
1. 直接提取特定字段(推荐,一步到位)
利用Google Sheets内置的JSON函数,结合IMPORTDATA获取数据并通过JSONPath定位目标字段:
=JSON(IMPORTDATA("https://jsonplaceholder.typicode.com/users/1"), "$.name")
- 执行后会直接返回
Leanne Graham - 如需提取嵌套字段,比如地址中的城市,可使用
$.address.city作为JSONPath参数
2. 获取完整原始JSON数据
通过Google Apps Script创建自定义函数,直接获取未修改的JSON内容:
- 打开目标表格,点击「扩展程序」→「Apps Script」
- 删除默认代码,粘贴以下脚本:
function GETJSON(url) { var response = UrlFetchApp.fetch(url); return response.getContentText(); }
- 保存项目(可命名为
JSONImporter),回到表格单元格输入:
=GETJSON("https://jsonplaceholder.typicode.com/users/1")
该函数会返回完整的原始JSON字符串,保留所有引号、逗号和嵌套结构,无拆分或格式丢失问题。
3. 修复现有导入的不完整数据(临时方案)
如果必须基于已用IMPORTDATA导入的拆分内容修复,可使用以下公式重新拼接(仅适用于无特殊字符的简单JSON):
=CONCATENATE(IMPORTDATA("https://jsonplaceholder.typicode.com/users/1"))
但此方法仍可能因JSON内的特殊字符失效,优先推荐前两种方案。
内容的提问来源于stack exchange,提问作者Stevoisiak
相关产品推荐
相关产品推荐

