Search code examples
jsongocontrollerrouterbeego

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

}

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 


Solution

  • 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.