[解決済み】GoでJSONのPost Requestを処理する
2022-03-29 15:41:37
質問
というわけで、信じられないほどハチャメチャに思える以下のようなものがあり、Goにはこれよりももっと良い設計のライブラリがあると自分では思っているのですが、GoがJSONデータのPOSTリクエストを処理する例が見当たりません。それらはすべてフォームのPOSTです。
以下はリクエストの例です。
curl -X POST -d "{\"test\": \"that\"}" http://localhost:8082/test
そして、これがログを埋め込んだコードです。
package main
import (
"encoding/json"
"log"
"net/http"
)
type test_struct struct {
Test string
}
func test(rw http.ResponseWriter, req *http.Request) {
req.ParseForm()
log.Println(req.Form)
//LOG: map[{"test": "that"}:[]]
var t test_struct
for key, _ := range req.Form {
log.Println(key)
//LOG: {"test": "that"}
err := json.Unmarshal([]byte(key), &t)
if err != nil {
log.Println(err.Error())
}
}
log.Println(t.Test)
//LOG: that
}
func main() {
http.HandleFunc("/test", test)
log.Fatal(http.ListenAndServe(":8082", nil))
}
もっといい方法があるはずでしょう?ベストプラクティスは何だろうと考えても、なかなか見つからないんです。
(Goは検索エンジンではGolangとも呼ばれ、他の人が見つけられるようにここに書いてあります)
解決するには?
を使用してください。
json.Decoder
の代わりに
json.Unmarshal
.
func test(rw http.ResponseWriter, req *http.Request) {
decoder := json.NewDecoder(req.Body)
var t test_struct
err := decoder.Decode(&t)
if err != nil {
panic(err)
}
log.Println(t.Test)
}
関連
-
[解決済み] jqを使用してJSONからキー名を取得する方法
-
[解決済み] JSONの未定義の値型
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み】なぜPythonはこのJSONデータをパースできないのですか?[終了] PythonがこのJSONデータをパースできないのはなぜですか?
-
[解決済み】JSON-ObjectでTypeScriptオブジェクトを初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UnicodeDecodeError: 'utf8' コーデックは位置3131のバイト0x80をデコードできません: 不正なスタートバイトです
-
[解決済み] JSONとJSONPの違いは何ですか?
-
[解決済み] JSONCとは何ですか?JSONCとJSON-Cは違うのですか?
-
[解決済み] JSONの未定義の値型
-
[解決済み】GoでPOSTリクエストでJSON文字列を送信する方法
-
[解決済み] node.jsでjsonのためのrequireはありますか?
-
[解決済み】TypeScriptでJSONファイルを取り込む
-
[解決済み] [Solved] ファイルまたはアセンブリ 'Newtonsoft.Json' またはその依存関係の 1 つをロードできませんでした。マニフェストの定義がアセンブリの参照と一致しません。
-
[解決済み】JSONを表現するためのRedis文字列とRedisハッシュ:効率?
-
[解決済み】json.Unmarshalとjson.NewDecoder.Decodeを使ったJSONのデコードについて