2

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()

}

and request is as follows curl -X POST http://localhost:8080/ -d '{"username" : "admin", "password":"admin"}'

after request has hit beego server i am trying to access username in the request but its showing empty

and the outpit is

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 
gophervk
  • 67
  • 8

2 Answers2

2

Declared Structure in your code given below type User struct { username string password string }

To access the values of Structure Values first character should be Capital.example given below. type User struct { Username string Password string }

And json encoding and decoding use json.Unmarshal(), json.Marshal() function.

1

you need unmarshal json data from request body , more see here

e.g:

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