ホームページ  >  記事  >  バックエンド開発  >  golang で x-www-form-urlencoded リクエストのネストされたキーと値のペアを JSON 形式で取得する

golang で x-www-form-urlencoded リクエストのネストされたキーと値のペアを JSON 形式で取得する

王林
王林転載
2024-02-09 15:15:08421ブラウズ

golang で x-www-form-urlencoded リクエストのネストされたキーと値のペアを JSON 形式で取得する

golang では、x-www-form-urlencoded リクエストを JSON 形式で処理するときに、ネストされたキーと値のペアが発生することがあります。 PHP エディター Baicao はすべての人にソリューションを提供します。 json.Unmarshal 関数を使用してリクエスト本文を map[string]interface{} 型に解析し、型アサーションと型変換を通じてネストされたキーと値のペアの値を取得します。この方法はシンプルかつ効果的であり、開発者がそのようなリクエストを簡単に処理するのに役立ちます。続いて、具体的な導入手順を詳しく紹介していきます。

質問の内容

以下に示すように、x-www-form-urlencoded 本体でネストされたキー値を取得するユースケースがあります。

name=abc&age=12¬es[key1]=value1¬es[key2]=value2

私は

url.parsequery("name=abc&age=12¬es\[key1\]=value1¬es\[key2\]=value2") を試しましたが、 が得られます リーリー

上記のテキストに対して次の JSON 形式の値を取得する方法

リーリー

コメントは 3 レベルの入れ子形式にすることができます

url.parsequeryr.form を試しましたが、両方とも notes[key1]notes[key2]

回避策

このタイプのクエリ文字列パラメータ名を使用してネストされたキー値をアンマーシャリングするには、

derekstavis/go -qs これを使用できます。ラッククエリ文字列パーサーのポートです。

これにより、次のネストされたキー値を含む

map[string]interface{} が返されます。

age の値は文字列として返されることに注意してください。ただし、これは url.parsequery についても同じです。このパッケージは、整数にマーシャリングする必要がある場合にフォークして変更できます。 リーリー

完全な例は go プレイグラウンドで提供されています。コードは次のとおりです:

プレイグラウンド URL:

https://www.php.cn/link/0fc780bb04e74ce5ed154d2e49cfe2fd リーリー

以上がgolang で x-www-form-urlencoded リクエストのネストされたキーと値のペアを JSON 形式で取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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