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