this.input.get() 不工作 beego

this.input.get() not working beego

1package main

import (
 "database/sql"

 "flag"
 "fmt"

 "github.com/astaxie/beego"
)

type User struct {
 username string
 password string
}type MainController struct {
 beego.Controller
}

func (this *MainController) Post() {
 this.Ctx.WriteString("hello world")
 result := this.Input()
 fmt.Println("eedwedwe", this.Input().Get("username"))
 fmt.Println("input value is", result)
 fmt.Println("eedwedwe", result.Get("Username"))
 send := User{username: "vijay", password: "vk18"}
 this.Data["json"] = &send
 this.ServeJSON()
}

func main() {

 beego.Router("/", &MainController{})
 beego.Run()

}

请求如下 curl -X POST http://localhost:8080/ -d '{"username" : "admin", "password":"admin"}'

请求到达 beego 服务器后,我试图访问请求中的用户名,但它显示为空

出口是

2017/02/17 12:56:59 [I] [asm_amd64.s:2086] http server Running on http://:8080
eedwedwe 
input value is map[{"username" : "admin", "password":"admin"}:[]]
eedwedwe 

下面给出的代码中声明的结构 输入用户结构{ 用户名字符串 密码字符串 }

要访问结构值的值,第一个字符应该是下面给出的 Capital.example。 输入用户结构{ 用户名字符串 密码字符串 }

和json编解码使用 json.Unmarshal(), json.Marshal() 函数。

您需要从请求正文中解组 json 数据,更多信息请参阅 here

例如:

u := &User{}
err:= json.Unmarshal(this.Ctx.Input.RequestBody, u)