goでechoを使用してセッションを使ってカードをセットした配列を次のページで使おうと思っております。
echoの公式docに従ってgorilla/sessionsを使っています。
indexの際にはうまくvalueが表示されるのですが、なぜが次に引き継がれません。
ただの文字列であれば引き継がれるのですが、配列は引き継げないのでしょうか?
うまいやり方をご教示ください。
一部のプログラムを記載します。

var card [4][13] map[string]int

// Handler
func Index(c echo.Context) error {
    data := map[string]interface{}{
        "message": "",
    }

  sess, _ := session.Get("session", c)
  sess.Options = &sessions.Options{
    Path:     "/",
    MaxAge:   86400 * 7,
    HttpOnly: true,
  }

    // カードをセットする。   
    // cardにvalue S1H13セット 
    var prefix string
    for i, v := range card {
        switch {
        case i == 0:
            prefix = "S"
        case i == 1:
            prefix = "D"
        case i == 2:
            prefix = "C"
        case i == 3:
            prefix = "H"
        default:
        }

        for j, _ := range v {

        number := strconv.Itoa(j + 1)
        card[i][j] = make(map[string]int)
        card[i][j][prefix + number] = 0
        }
    }

  sess.Values["test"] = "test"
  sess.Values["card"] = card
  sess.Save(c.Request(), c.Response())
    fmt.Println(sess.Values["test"])
    fmt.Println(sess.Values["card"])

    return c.Render(http.StatusOK, "index.html", data)
}

func SessionTest(c echo.Context) error {
    sess, _ := session.Get("session", c)

    fmt.Println(sess.Values["test"])
    fmt.Println(sess.Values["card"])

    data := map[string]interface{}{
        "message": "",
    }
    return c.Render(http.StatusOK, "nervous_breakdown.html", data)
}