如何解析Google表格单元格中的指定JSON内容?
解析Google表格单元格中的JSON数据
嘿,我来帮你搞定在Google Sheets里解析这段JSON数据的事儿!下面给你两种实用的方法,按需选择就行:
方法1:用Google Sheets内置函数 JSONPARSE
Google Sheets现在有原生的JSON解析函数JSONPARSE,适合简单的提取需求,不用写代码。假设你的JSON内容在单元格A1里:
- 提取年龄上限:
=JSONPARSE(A1).age_max - 提取年龄下限:
=JSONPARSE(A1).age_min - 提取目标性别(数组第一个元素):
=INDEX(JSONPARSE(A1).genders, 1) - 提取目标国家:
=JSONPARSE(A1).geo_locations.countries - 提取兴趣列表里第一个标签的名称:
=INDEX(JSONPARSE(A1).flexible_spec[0].interests, 1).name
注意:JSON里的数组会被解析成Google Sheets的单元格范围,所以需要用
INDEX来指定提取数组里的具体元素。
方法2:用Google Apps Script自定义函数(适合复杂场景)
如果你的JSON嵌套层级深,或者需要批量提取数据,自定义函数会更灵活:
- 打开你的Google表格,点击顶部菜单「扩展程序」→「Apps Script」
- 删除默认代码,粘贴下面的脚本:
function GETJSONVALUE(jsonText, path) { try { const jsonObj = JSON.parse(jsonText); // 按点分割路径,比如"flexible_spec.0.interests.1.name" const pathParts = path.split('.'); let result = jsonObj; for (const part of pathParts) { const index = parseInt(part); // 处理数组索引(数字格式的路径段) if (!isNaN(index)) { result = result[index]; } else { result = result[part]; } } return result; } catch (e) { return "解析错误:" + e.message; } }
- 保存项目(随便起个名字比如
JSONParser),回到表格就能用这个函数了。
用法示例
- 提取年龄上限:
=GETJSONVALUE(A1, "age_max") - 提取兴趣列表里第二个标签的ID:
=GETJSONVALUE(A1, "flexible_spec.0.interests.1.id") - 提取目标国家列表:
=GETJSONVALUE(A1, "geo_locations.countries")
重要注意事项
- 确保你的JSON是完整且格式有效的!你提供的这段JSON末尾是
"location_types"...},明显截断了,得先补全缺失的部分,否则所有解析方法都会失败。 - 如果单元格里的JSON有转义字符或者格式问题,先清理内容,保证符合标准JSON语法。
内容的提问来源于stack exchange,提问作者libor
相关产品推荐
相关产品推荐

