Вот так можно добраться
package main
import (
"fmt"
php "github.com/kovetskiy/go-php-serialize"
)
func main() {
s := `a:6:{s:7:"__flash";a:1:{s:3:"mes";s:5:"Hello";}s:4:"__id";s:36:"3c5035d9-aea1-4f08-8325-9e598921e2a9";}`
val, err := php.Decode(s)
if err != nil {
fmt.Println(err)
return
}
session := val.(map[interface {}]interface {})
flash := session["__flash"].(map[interface {}]interface{})
fmt.Println("id", session["__id"])
fmt.Println("mes", flash["mes"])
}
По хорошему надо проверять прошло ли нормально приведение типов, чтобы небыло panic
session, ok := val.(map[interface {}]interface {})
if !ok {
// с val явно что-то не так, оно не соответствует типу map[interface {}]interface {}
}
flash, ok := session["__flash"].(map[interface {}]interface{})
if !ok {
// ...
}