ホームページ > バックエンド開発 > Golang > Go JSON マーシャリングで sql.NullString 出力を平坦化する方法

Go JSON マーシャリングで sql.NullString 出力を平坦化する方法

Patricia Arquette
リリース: 2024-11-28 09:58:11
オリジナル
654 人が閲覧しました

How to Flatten sql.NullString Output in Go JSON Marshalling?

sql.NullString のマーシャリング: 出力の平坦化

Go 構造体を sql.NullString フィールドでマーシャリングすると、 NullString。ただし、このネストされた表現は望ましくない可能性があります。

解決策

出力をフラット化して値のみを表示するには、sql.NullString を埋め込み、json.Marshaler インターフェイスを実装するカスタム型を作成します。

type MyNullString struct {
    sql.NullString
}

func (s MyNullString) MarshalJSON() ([]byte, error) {
    if s.Valid {
        return json.Marshal(s.String)
    }
    return []byte(`null`), nil
}

type Company struct {
    ID   int          `json:"id"`              
    Abn  MyNullString `json:"abn,string"`
}
ログイン後にコピー

このカスタム タイプは、NullString かどうかをチェックする MarshalJSON メソッドを提供します。値は有効です。存在する場合、文字列値をマーシャリングします。それ以外の場合は、null をマーシャリングします。

このカスタム タイプを使用し、Company 構造体の Abn フィールドに適用すると、JSON 出力がフラット化され、Abn 値のみが表示され、ネストされたオブジェクトが省略されます。

以上がGo JSON マーシャリングで sql.NullString 出力を平坦化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート