Go

JSON エンコーディング

json.Marshal, json.Unmarshal, struct tags, custom marshaling, streaming, RawMessage

20 面接問題·
Mid-Level
1

Go の struct を JSON にエンコードできる関数はどれですか?

回答

json.Marshal は Go の struct を JSON バイト列にエンコードします。この関数は struct tags を読み取り、シリアライズをカスタマイズします(リネーム、フィールドの省略)。io.Writer へのストリーミングでは、json.NewEncoder を使うとメモリ内に中間バッファを作成せずに済みます。

2

JSON を Go の struct にデコードできる関数はどれですか?

回答

json.Unmarshal は JSON バイト列を Go の struct にデコードします。データが正しく書き込まれるためには、対象の struct へのポインタを渡す必要があります。io.Reader からのストリーミングでは、json.NewDecoder のほうが効率的で、JSON 全体をメモリに読み込まずに済みます。

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をマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める