ホームページ  >  記事  >  バックエンド開発  >  Go で必須ではない JSON パラメータを使用するにはどうすればよいですか?

Go で必須ではない JSON パラメータを使用するにはどうすればよいですか?

王林
王林転載
2024-02-12 09:10:08931ブラウズ

如何在 Go 中使用非必需的 JSON 参数?

php Xiaobian Yuzai は、Go 言語で必須ではない JSON パラメーターを使用する方法についてのヒントを提供します。 Go プログラムを作成するとき、JSON データを処理する必要があることがよくありますが、すべてのパラメーターではなく、一部のパラメーターのみを使用する必要がある場合があります。この記事では、Go で必須ではない JSON パラメーターを使用して、JSON データをより柔軟に処理し、コードの可読性と保守性を向上させる方法を紹介します。初心者でも経験豊富な開発者でも、この記事では、この機能をより深く理解し、適用するのに役立つ役立つヒントとサンプル コードを提供します。一緒に探検しましょう!

質問の内容

こんにちは、私は Go で Rest API を開発していて、ユーザーに JSON パラメーターを渡してほしいと考えています:

リーリー

ただし、これらは常に必要なわけではありません。たとえば、ユーザーは Offset のみを渡し、その他を無視できます。パラメータが 0 であっても送信できます。これどうやってするの?

回避策

JSON テキストから値をアンマーシャリングする場合、json パッケージでは、すべてのフィールドが JSON に表示される必要はなく、また、すべての JSON フィールドに一致する Go フィールドがあることが保証されます。

したがって、特別なことは何もありません。自分が望むもの、または望むかもしれないものに対して、自分が持っているものを Go の値に整理するだけです。

注意すべき点は、JSON テキストにフィールドが欠落している場合、json パッケージは対応する Go フィールドを変更しないため、フィールドが "fresh" で始まる場合、ゼロ値になります。 、フィールドはその型のゼロ値を保持します。

ほとんどの場合、フィールド (JSON 内) が存在するかどうかを検出するにはこれで十分です。たとえば、Go 構造体に string 型の SortBy フィールドがある場合、 JSON フィールドが欠落しているため、空のままになります。 string: "".

ゼロ値が便利で有効な場合は、ポインターの使用に進むことができます。たとえば、アプリケーションで null string が有効な SortBy 値である場合、このフィールドをポインタ *string として宣言できます。この場合、JSON テキストにそれが欠落している場合、nil、つまり任意のポインター型のゼロ値が保持されます。

この例を参照してください:

リーリー

出力 (Go Playground で試してください):

リーリー

以上がGo で必須ではない JSON パラメータを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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