
JSON エンコーディング
json.Marshal, json.Unmarshal, struct tags, custom marshaling, streaming, RawMessage
20 面接問題·
Mid-Level
1Go の struct を JSON にエンコードできる関数はどれですか?
1
Go の struct を JSON にエンコードできる関数はどれですか?
回答
json.Marshal は Go の struct を JSON バイト列にエンコードします。この関数は struct tags を読み取り、シリアライズをカスタマイズします(リネーム、フィールドの省略)。io.Writer へのストリーミングでは、json.NewEncoder を使うとメモリ内に中間バッファを作成せずに済みます。
2JSON を Go の struct にデコードできる関数はどれですか?
2
JSON を Go の struct にデコードできる関数はどれですか?
回答
json.Unmarshal は JSON バイト列を Go の struct にデコードします。データが正しく書き込まれるためには、対象の struct へのポインタを渡す必要があります。io.Reader からのストリーミングでは、json.NewDecoder のほうが効率的で、JSON 全体をメモリに読み込まずに済みます。
3シリアライズ時にフィールドをリネームできる JSON struct tag はどれですか?
3
シリアライズ時にフィールドをリネームできる JSON struct tag はどれですか?
回答
json:"custom_name" タグは JSON シリアライズ時にフィールドをリネームできます。例えば、UserID フィールドを JSON では user_id にできます。命名規則を守るのに役立ちます(JSON では snake_case、Go では CamelCase)。
4
フィールドをシリアライズから完全に除外する JSON struct tag はどれですか?
5
値が空の場合にフィールドを省略できる JSON struct tag はどれですか?
+17 面接問題
その他のGo面接トピック
Goの基礎
Junior
25問Goのデータ構造
Junior
20問Go のインターフェース
Junior
18問エラー処理
Junior
20問Goroutine の基礎
Junior
20問Channels
Junior
22問Go Modules
Mid-Level
18問HTTP サーバー
Mid-Level
24問HTTPクライアント
Mid-Level
18問Database/SQL
Mid-Level
22問context パッケージ
Mid-Level
20問Testing
Mid-Level
22問並行処理パターン
Mid-Level
24問同期プリミティブ
Mid-Level
22問Go Web フレームワーク
Mid-Level
20問REST API 設計
Mid-Level
20問gRPC
Mid-Level
22問Reflection
Senior
20問メモリ管理
Senior
24問パフォーマンス最適化
Senior
22問Generics
Senior
20問Go Design Patterns
Senior
24問Microservices
Senior
24問セキュリティと認証
Senior
24問Docker & Containerization
Senior
20問Kubernetes Basics
Senior
22問高度な Go
Senior
20問CLI開発
Senior
20問