Map[string]string を JSON にマーシャリングするとエラーが返されますか?
一般に、有効な Map[string]string を JSON にマーシャリングすると、 json.Marshal() を使用した JSON ではエラーが発生する可能性は低いです。これは、JSON 内のキーと値の両方が、Go が UTF-8 でエンコードされたバイト シーケンスを使用して表す有効な Unicode 文字列であるためです。
ただし、考慮すべき例外的な状況がいくつかあります。
m := map[string]string{"\xff": "a"} data, err := json.Marshal(m) // Output: {"\ufffd":"a"} <nil>
m := map[string]string{"a": "b"} go func() { for { m["c"] = "d" } }() for { if _, err := json.Marshal(m); err != nil { // Error: "concurrent map iteration and map write" } }
通常、map[string]string をマーシャリングするときにエラーを処理する必要はありませんが、 JSON では、適切なプログラミングの実践では、エラーの可能性が低い状況であっても、あらゆるケースでエラーをチェックすることが求められます。
以上がGo `map[string]string` を JSON にマーシャリングすると失敗する可能性がありますか?また、どのような状況でしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。