2017-07-04 20 views
-1

私は言語になるための新しい蜂です。ここでr.Bodyから個々のキーの値をgo言語で抽出する方法

は私の行く機能コードです:

func data(w http.ResponseWriter, r * http.Request) { 
    w.Header().Set("Content-Type", "application/x-www-form-urlencoded") 
    r.ParseForm() 
    fmt.Println("r.PostForm", r.PostForm) 
    fmt.Println("r.Form", r.Form) 
    fmt.Println("r.Form value\n", r.FormValue("password")) 
    x := r.Form.Get("password") 
    fmt.Println(x) 
} 

出力は次のとおりです。

[{ "Target":{"name":"l","password":"l","port":"1234"}, 
"Import":[{"table_name":"l",row_name:"l"}] }] 
r.Formを介してデータを取得し、この中

ioutil.ReadAll(r.Body)、およびr.PostForm、私は上記の出力を得ることが、ときに私r.form.Get(key)(現在はパスワードを使用しています)とr.FormValue(key)で試してみてください。出力はありません。それは空白です。なぜこれらの2つは空白ですか?

r.Form.Get("Target")のような名前でターゲットとインポートの値を取得したいとします。それを行う方法はありますか?

また、私はioutil.ReadAll(r.Body)を使用したくありません。これらのフィールドの値は、それぞれの名前を使用してr.Bodyから個別に取得したいと考えています。

+0

あなたはそれを取得する必要があります。たぶん、あなたは 'Content-Type:application/x-www-form-urlencoded'でデータを投稿しないでしょう。 – mattn

+0

投稿した出力が上記のコードと一致しません。コードで印刷したすべての静的な文字列はどこにありますか? – TehSphinX

答えて

-1

TargetとImportの値をr.Form.Get( "Target")のような名前で取得したいとします。それを行う方法はありますか?

もちろん、は、をJSONドキュメントではなくフォーム値として送信します。

+0

私はJSONだけを使用して送信する必要があります。 –

+0

次に、http.Request.Formを使用することはできません。代わりに、要求本体をアンマーシャリングする必要があります。デッドシンプル。 – Volker

関連する問題