You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Google Sheets单个单元格的TTN JSON数据中提取指定decoded.payload字段至独立单元格

解决TTN JSON数据拆分到Google Sheets独立单元格的问题

我来帮你搞定这个问题!你现在的情况是The Things Network把整段JSON数据直接塞进了Google Sheets的单个单元格,想要把decoded.payload里的四个数据点分别提取到独立单元格对吧?下面给你两种实用的解决方案,从简单到灵活都有:

方法一:用Google Sheets内置函数(适合非代码用户)

如果你的Google Sheets已经支持JSONPARSE函数(这是Google近年推出的原生JSON处理函数),操作超简单:

假设整段JSON数据在A1单元格,你只需要在其他单元格输入对应的提取公式:

  • 提取I1I_Overflade:=JSONPARSE(A1, "decoded.payload.I1I_Overflade")
  • 提取I2I_Dybde:=JSONPARSE(A1, "decoded.payload.I2I_Dybde")
  • 提取I3I_Klarhed:=JSONPARSE(A1, "decoded.payload.I3I_Klarhed")
  • 提取I4I_Lys:=JSONPARSE(A1, "decoded.payload.I4I_Lys")

每个公式对应一个单元格,直接就能得到单独的数据点。如果你的Sheet版本不支持JSONPARSE,可以试试方法二。

方法二:用Google Apps Script(灵活批量处理)

如果需要批量处理多行数据,或者你的Sheet不支持原生JSON函数,用Apps Script是更稳妥的选择:

  1. 打开你的Google Sheet,点击菜单栏的「扩展程序」→「Apps Script」
  2. 删除默认的myFunction代码,粘贴下面的自定义函数:
function extractPayloadData(jsonText) {
  if (!jsonText) return [];
  try {
    // 解析JSON字符串
    const ttnData = JSON.parse(jsonText);
    // 定位到decoded.payload部分
    const payload = ttnData.uplink_message.decoded_payload;
    // 按顺序返回需要的四个字段,你可以根据需求调整顺序或增减字段
    return [payload.I1I_Overflade, payload.I2I_Dybde, payload.I3I_Klarhed, payload.I4I_Lys];
  } catch (error) {
    // 解析出错时返回提示信息
    return ["JSON解析错误: " + error.message];
  }
}
  1. 点击保存按钮,给你的项目起个名字(比如TTN-Payload-Extractor)
  2. 回到Sheet,在B1单元格输入=extractPayloadData(A1),按回车后,四个数据会自动填充到B1到E1的单元格里(函数返回的数组会自动扩展到相邻单元格)
    • 第一次运行会弹出授权提示,按照页面指引完成授权即可(这是Google的安全验证,放心授权)

额外小提示

如果你的TTN是通过Webhook直接推送数据到Google Sheets,其实可以在TTN的Webhook设置里直接指定只发送decoded.payload的内容,这样后续就不用再拆分了——不过如果已经推送了整段JSON,上面的两种方法完全能解决问题。

内容的提问来源于stack exchange,提问作者Cheide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 16:07:37