ホームページ >バックエンド開発 >Golang >golang: メソッドを持つ json 配列

golang: メソッドを持つ json 配列

WBOY
WBOY転載
2024-02-09 10:15:181264ブラウズ

golang:也有方法的 json 数组

php Xiaobian Yuzi が Golang に関する記事をお届けします。テーマは「golang: メソッドを持つ json 配列」です。 Golang はシンプルで効率的なプログラミング言語であり、json 配列は一般的に使用されるデータ形式の 1 つです。この記事では、Golang で json 配列を操作する方法を検討し、いくつかの便利な方法を紹介します。初心者でも経験豊富な開発者でも、この記事は貴重な情報とヒントを提供します。一緒に調べてみましょう!

質問内容

次のようなデータ構造があります:

リーリー

また、にも方法があることを願っています:

リーリー

ただし、json の要件は、親が単なる配列であることです:

リーリー

parent を単純な配列にしたいのですが、parent にメソッドを持たせるためには、配列型にすることはできません。

これら 2 つの問題を 1 つのデータ構造で解決する方法はありますか?

(物事をさらに複雑にするために、使用する必要がある実際のデータ構造には 2 つのレベルがあります。greatgrandparent には []grandparent が含まれ、一方 grandparent には A parent には parent が含まれています。json 構造は外部で定義されており、配列にはキー名がなく、4 つの構造それぞれにメソッドが必要です。)

Solution

親にメソッドを持たせるには、配列型にすることはできません。

メソッドを実装できるのは名前付き型 (または名前付き型へのポインタ) だけであるため、 名前 を持つ必要があります。以下は有効な go コードです:

リーリー

上記の parent は配列ではなくスライスであることに注意してください。 Go の配列の長さは静的であり、増やすことも縮小することもできません。一方、スライスは動的な長さを持ち、自由にサイズを変更できます。配列とスライスは密接に関連していますが、同じではありません。

別の方法は、構造体型に json.unmarshaler/json.marshaler インターフェイスを実装させることです:

リーリー

上記により、必要な json 構造が生成されます。

以上がgolang: メソッドを持つ json 配列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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