ソートされたキーを使用した Go での JSON マーシャリング
Python では、ソートされた順序でキーを含む JSON を生成するのは、sort_keys パラメーターを次のように設定するのと同じくらい簡単です。真実。しかし、ゴーはどうでしょうか?この質問では、Golang で同様の動作を実現するためのオプションを検討します。
Go のキー順序付けアプローチ
Python とは異なり、Go の JSON パッケージは本質的にマーシャリング中にキーを順序付けします。特定の順序付けルールは次のとおりです。
この自動キー順序付けは、開発者が Python のように sort_keys パラメーターを明示的に指定する必要がないことを意味します。キーの順序は、Go の内部ソート アルゴリズムによって決定されます。
Under the Hood
キーの順序付けの実装は、encoding/json/encode.go にあります。具体的には 359 行目以降です。ここで、エンコーダーはマップまたは構造体のキーを反復処理し、JSON をシリアル化する前にそれらを並べ替えます。
例
次の Go コードを考えてみましょう:
package main import "encoding/json" type MyStruct struct { Field1 string Field2 int } func main() { data := map[string]int{"apple": 1, "banana": 3, "cherry": 2} jsonData, _ := json.Marshal(data) fmt.Println(string(jsonData)) }
このコードの出力は次のようになります。
{ "apple": 1, "banana": 3, "cherry": 2 }
ご覧のとおり、追加の構成を行わなくても、キーは自動的に辞書順に並べ替えられます。
以上がGo でマーシャリングするときにソートされた JSON キーを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。