Go 言語を使用して Web アプリケーションを開発する場合、データを JSON 形式にシリアル化することがよくあります。ソートされたキーと値のマッピングをシリアル化するには、Gin フレームワークと Golang のマップ データ構造を使用してそれを実現できます。この記事では、PHP エディター Banana が、Gin によって JSON にシリアル化して Web アプリケーションをより柔軟かつ効率的にできる、ソートされたキーと値のマップを作成する方法を詳しく紹介します。具体的な導入方法を見ていきましょう!
Ginを使ってREST APIを作成しています。作成しようとしている応答は、キー値の JSON マップです。例:
リーリー私が使用するデータ モデルは次のとおりです:
リーリーそして、それは json:
に正しくシリアル化されます。 リーリー ###ほとんど。map[string]トピックの値が正しい順序で取得されません。整理した地図から作成します。しかし、これでは役に立ちません。
リーリー
ある時点で、このマップは再作成され、キーの順序がわずかに変更されたようです。 ジンはこの生のキーと値のマップを正しくシリアル化することしかできないため、他の代替手段は思いつきません。 github.com/umpc/go-sortedmap のソートされたマップはまったくシリアル化されていません。では、この元の (ネイティブの?) 構造でキーの順序を維持するにはどうすればよいでしょうか?それとも、Gin 用のカスタム シリアライザーを作成する必要がありますか?
インターネットで解決策を見つけようとしました。 解決策私の解決策は、
sortedmap.SortedMap の周りにラッパーを作成し、このラッパーのカスタム MarshalJSON を作成することでした。 リーリー MarshalJSON の定義では SortedMapWrapper (*SortedMapWrapper
の代わりに) を使用する必要があることに注意してください。そうしないと見つかりません。
以上がGin で JSON にシリアル化できる、ソートされたキーと値のマップを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。