<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Go语言开发 on Two Tigers Engineering</title>
    <link>https://blog.twotigers.xyz/series/go%E8%AF%AD%E8%A8%80%E5%BC%80%E5%8F%91/</link>
    <description>Recent content in Go语言开发 on Two Tigers Engineering</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 29 May 2024 21:00:08 +0800</lastBuildDate><atom:link href="https://blog.twotigers.xyz/series/go%E8%AF%AD%E8%A8%80%E5%BC%80%E5%8F%91/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>golang json.Marshal(error) 返回 `{}`, 问题分析与解决方案</title>
      <link>https://blog.twotigers.xyz/posts/go/json/</link>
      <pubDate>Wed, 29 May 2024 21:00:08 +0800</pubDate>
      
      <guid>https://blog.twotigers.xyz/posts/go/json/</guid>
      <description>序列化 Go 语言中的 error 接口问题：问题发现、原因与解决方案 在开发 Go 语言项目时，我们常常需要将结构体序列化为 JSON 格式。然而，当结构体中包含 error 接口时，序列化结果往往会不如预期。在这篇博客中，我们将讨论这个问题的原因，并提供两种解决方案。
问题描述 我们有一个结构体 CustomError，其中包含一个 error 类型的字段。如下所示：
package main import ( &amp;#34;encoding/json&amp;#34; &amp;#34;fmt&amp;#34; ) type CustomError struct { UserID int64 Err error } func (e *CustomError) Error() string { return fmt.Sprintf(&amp;#34;user %d: %s&amp;#34;, e.UserID, e.Err.Error()) } func main() { var errs []CustomError errs = append(errs, CustomError{UserID: 1, Err: fmt.Errorf(&amp;#34;error 1&amp;#34;)}) errs = append(errs, CustomError{UserID: 2, Err: fmt.Errorf(&amp;#34;error 2&amp;#34;)}) errs = append(errs, CustomError{UserID: 3, Err: fmt.</description>
    </item>
    
  </channel>
</rss>
