iris自定义结构体映射获取json格式请求数据

    代码示例

    main.go

    1. package main
    2. import (
    3. "github.com/kataras/iris"
    4. )
    5. type Company struct {
    6. Name string
    7. City string
    8. Other string
    9. }
    10. func MyHandler(ctx iris.Context) {
    11. var c Company
    12. if err := ctx.ReadJSON(&c); err != nil {
    13. ctx.StatusCode(iris.StatusBadRequest)
    14. ctx.WriteString(err.Error())
    15. ctx.Writef("Received: %#+v\n", c)
    16. }
    17. //简单的json,请阅读https://golang.org/pkg/encoding/json
    18. type Person struct {
    19. Name string `json:"name"`
    20. Age int `json:"age"`
    21. }
    22. // MyHandler2从JSON POST数据中读取Person的集合。
    23. func MyHandler2(ctx iris.Context) {
    24. var persons []Person
    25. err := ctx.ReadJSON(&persons)
    26. if err != nil {
    27. ctx.StatusCode(iris.StatusBadRequest)
    28. ctx.WriteString(err.Error())
    29. return
    30. }
    31. func main() {
    32. app := iris.New()
    33. app.Post("/", MyHandler)
    34. app.Post("/slice", MyHandler2)
    35. //使用Postman或其他什么来做POST请求
    36. //使用RAW BODY到http//localhost:8080:
    37. /*
    38. {
    39. "Name": "iris-Go",
    40. "City": "New York",
    41. "Other": "Something here"
    42. }
    43. */
    44. //和Content-Type到application/json(可选且易用)
    45. //响应应该是:
    46. //接收值: main.Company{Name:"iris-Go", City:"New York", Other:"Something here"}
    47. app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed), iris.WithOptimizations)