ホームページ >バックエンド開発 >Golang >Gin で JSON にシリアル化できる、ソートされたキーと値のマップを作成するにはどうすればよいですか?

Gin で JSON にシリアル化できる、ソートされたキーと値のマップを作成するにはどうすればよいですか?

WBOY
WBOY転載
2024-02-08 23:36:10795ブラウズ

如何创建一个可以由 Gin 序列化为 json 的排序键值映射?

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 サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。