Go で構造体の文字列表現を取得する

Musfirah Waseem 2023年6月20日
  1. Go で String メソッドを使用して構造体を文字列に変換する
  2. json.Marshal メソッドを使用して Go で構造体を JSON に変換する
Go で構造体の文字列表現を取得する

Go では、構造体からデータをシリアル化するための複数の単純な標準的な方法を使用できます。

Go で String メソッドを使用して構造体を文字列に変換する

GoLang パッケージ String は、UTF-8 でエンコードされた文字列 を操作および編集するための単純な関数を実装するのに役立ちます。

コード例:

package main

import "fmt"

type myStructure struct {
    bar string
}

func (f myStructure) String() string {
    return fmt.Sprintf("The structure I made has the following data: %s", f.bar)
}

func main() {
    fmt.Println(myStructure{"Hello, World! GoLang is fun!"})
}

出力:

The structure I made has the following data: Hello, World! GoLang is fun!

上記のコードでは、myStructure という名前の構造体に String() 関数をアタッチして、構造体を文字列に変換できるようにしています。

json.Marshal メソッドを使用して Go で構造体を JSON に変換する

GoLang encoding/json パッケージには、JSON との変換に使用できるユーティリティがあります。 json.Marshal メソッドは、構造体を JSON に変換できます。

コード例:

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	type MyStructure struct {
		Message string `json:"From Structure"`
	}

	val := &MyStructure{
		Message: "Hello, World!",
	}

	// convert struct to json string
	jsonBytes, err := json.Marshal(val)

	fmt.Println(string(jsonBytes), err)

}

出力:

{"From Structure":"Hello, World!"} <nil>

上記の方法を使用している間は、定義された構造体のエクスポートされたフィールドのみが外部ライブラリで使用できることに注意してください。 したがって、構造体のエクスポート フィールドのみが、変換された JSON 文字列にコピーされます。

著者: Musfirah Waseem
Musfirah Waseem avatar Musfirah Waseem avatar

Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.

LinkedIn

関連記事 - Go Struct