ホームページ  >  記事  >  バックエンド開発  >  このネストされた JSON を Golang でデコードするにはどうすればよいですか?

このネストされた JSON を Golang でデコードするにはどうすればよいですか?

WBOY
WBOY転載
2024-02-10 18:45:08980ブラウズ

如何用 Golang 解码这个嵌套的 json?

ネストされた JSON を Golang でデコードする方法は、複雑なデータ構造を扱うときに多くの開発者が直面する課題です。この記事では、PHP エディター Banana が、Golang で JSON パッケージを使用してネストされた JSON データを解析および処理する方法を詳しく紹介します。この記事の内容を学ぶことで、さまざまな複雑な JSON 構造を簡単に処理し、より効率的なデータ解析と処理を実現できるようになります。初心者でも経験豊富な開発者でも、この記事では、JSON デコードの難しい問題を解決するのに役立つ役立つヒントとサンプル コードを提供します。 Golang でネストされた JSON をデコードする方法を見てみましょう。

質問の内容

ファイルとデータを含むリクエストの一部としてネストされた json をデコードしようとしています。

データは次のようになります

リーリー

ログに記録するのを忘れたため、最初は完全なエラーを含めませんでした。

リーリー

このエラーはフォームデータが JSON ではないことが原因であると考えられますが、修正方法がわかりません。私の Flutter コードは有効な JSON を送信しているようです。コンテンツ タイプが multipart/form-data であるため、エラーが発生している可能性があります。このコンテンツ タイプはコードのファイル アップロード部分に必要だと思います。

リクエストは Flutter クライアントから送信されます。コードは次のとおりです:

リーリー

私の Go API ではこれを行っています。

モデル (以下の回答に基づいて編集):

リーリー

コード:

リーリー

httputil.DumpRequest -> コンテンツ タイプ: multipart/form-data

編集: この質問への回答に基づいて、コードを次のように編集しました:

リーリー

これにより、次の出力が得られます:

リーリー ###編集:###

現在の問題は、

decoder := json.NewDecoder(r.Body)

の代わりに decoder := json.NewDecoder(part) を使用して解決しました。 フォーム ファイル を取得中に

エラーが発生しました。なんとかパーツを使えばいいような気がしますが、パーツにはファイルのプロパティがありません。マルチパートリクエストにフォームデータを追加したため、r.Body は使用できなくなりました。これは別の問題のようです。

回避策

これでは 404 問題は解決されませんが (リクエスト ハンドラー コードで質問を更新してください)、構造が送信内容と一致していないようです。この問題を解決するには、次の手順を実行できます:

リーリー

これにより、リクエスト本文が期待どおりにデコードされるはずです。

404 の場合は、クライアント コードによって送信されたリクエスト パスおよびメソッドがサーバー リクエスト ハンドラーのパスおよびメソッドと一致することを再確認する必要があります。

以上がこのネストされた JSON を Golang でデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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