Go では、JSON コンテンツを使用して HTTP レスポンスを構築すると、特に null 結果を処理する場合に課題が生じる可能性があります。この記事は、JSON 応答を生成しようとするときに直面する一般的な問題に対処することを目的としています。
Go の初心者が、JSON 応答機能を備えた単純な HTTP サーバーを実装しようとしています。ただし、サーバーは常に「text/plain; charset=utf-8」コンテンツ タイプの空の応答を返します。開発者はコードをオンラインの例と比較しましたが、違いを特定できませんでした。
問題の核心は、構造体のフィールドの可視性にあります。 Go では、JSON マーシャリングでアクセスできるように、構造体フィールドをエクスポート (大文字) する必要があります。
コード例 (オリジナル/間違ったもの):
<code class="go">type ResponseCommands struct { key string value bool }</code>
コード例 (修正):
<code class="go">type ResponseCommands struct { Key string Value bool }</code>
フィールドがエクスポートされると、JSON エンコーダーはその値に適切にアクセスしてエンコードできます。この単純だが重要な変更により問題が解決され、サーバーが有効な JSON 応答を返せるようになります。
以上がGo HTTP サーバーが空の JSON 応答を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。