this.input.get()没有工作

时间:2017-02-17 07:26:03

标签: json go controller router 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' {"用户名" :" admin","密码":"管理员"}'

请求已经命中了beego服务器我试图访问请求中的用户名,但显示为空

和outpit是



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 




2 个答案:

答案 0 :(得分:2)

在下面给出的代码中声明了结构 类型User struct {     用户名字串     密码字符串 }

要访问Structure Values的值,第一个字符应为Capital.example,如下所示。 类型User struct {     用户名字符串     密码字符串 }

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

答案 1 :(得分:0)

您需要来自请求正文的解组json数据,更多请参阅here

e.g:

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