go
type_error
ai_generated
true
恐慌:json:不支持的类型:chan int
panic: json: unsupported type: chan int
ID: go/json-marshal-channels
80%修复率
90%置信度
0证据数
2024-03-01首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 1.18 | active | — | — | — |
根因分析
尝试将channel或函数等不支持的类型序列化为JSON。
English
尝试将channel或函数等不支持的类型序列化为JSON。
解决方案
-
95% 成功率
在结构体中使用`json:"-"`忽略字段: type Message struct { Ch chan int `json:"-"` Data string `json:"data"` } -
80% 成功率
实现MarshalJSON方法自定义序列化。
无效尝试
常见但无效的做法:
-
100% 失败
程序崩溃。
-
90% 失败
json.Marshal不处理channel。