go type_error ai_generated true

恐慌:json:不支持的类型:chan int

panic: json: unsupported type: chan int

ID: go/json-marshal-channels

其他格式: JSON · Markdown 中文 · English
80%修复率
90%置信度
0证据数
2024-03-01首次发现

版本兼容性

版本状态引入弃用备注
1.18 active

根因分析

尝试将channel或函数等不支持的类型序列化为JSON。

English

尝试将channel或函数等不支持的类型序列化为JSON。

generic

解决方案

  1. 95% 成功率
    在结构体中使用`json:"-"`忽略字段:
    type Message struct {
        Ch chan int `json:"-"`
        Data string `json:"data"`
    }
  2. 80% 成功率
    实现MarshalJSON方法自定义序列化。

无效尝试

常见但无效的做法:

  1. 100% 失败

    程序崩溃。

  2. 90% 失败

    json.Marshal不处理channel。