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

如何用Go语言修正Notion API请求的JSON格式错误?

修正Notion API请求中Checkbox字段的Go数据结构

你当前的JSON请求错误核心是Checkbox字段的层级结构不匹配Notion API要求:Notion规定复选框字段的值必须是包含checkbox键的嵌套对象,而非直接将字段名与布尔值绑定。

错误根源

你的Go代码里大概率是把Checkbox相关字段定义成了map[string]bool或直接绑定布尔值的结构,导致序列化后输出"Done?":true,而非Notion要求的嵌套格式。

修正方案

方法1:嵌套结构体(推荐,类型安全)

定义专门的复选框结构体,在父结构中引用它来匹配API格式:

// 定义复选框字段的结构
type CheckboxField struct {
    Checkbox bool `json:"checkbox"`
}

// 页面属性结构体中,将"Done?"字段改为CheckboxField类型
type PageProperties struct {
    // 保留其他原有字段...
    Done CheckboxField `json:"Done?"`
}

方法2:嵌套Map(灵活但无类型校验)

如果属性字段不固定,可使用嵌套Map构建结构:

// 直接用map构建符合要求的属性结构
properties := map[string]interface{}{
    // 其他字段...
    "Done?": map[string]bool{"checkbox": true},
}

调整后序列化结果

修正后的结构序列化后会生成Notion API接受的正确格式:

{
  "Done?": {
    "checkbox": true
  }
}

关键注意点

  • 确保JSON标签的键名与Notion数据库中的字段名完全一致(比如你的字段是Done?,标签需写json:"Done?")
  • 若页面属性包含多种类型字段(文本、数字等),每种字段都需按照Notion要求的嵌套结构定义,统一用map[string]interface{}构建属性会更灵活

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:40:37