example code gives unmarshalling error
Closed this issue · 5 comments
I started a local in-memory database according to the installation instructions, ran go mod init, ran go get github.com/surrealdb/surrealdb.go, created a main.go file in the project root, copied and pasted the example code into it, and ran it with 'go run main.go'. I received the following error:
panic: json: cannot unmarshal object into Go value of type []main.User
goroutine 1 [running]:
main.main()
/home/atd/Projects/surreal_go/main.go:46 +0xa0b
exit status 2
What's going wrong here?
I am running into the same issue following the example.
type User struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
}
user:= User{
Name: "Test",
}
data, err := handler.db.Create("user", user)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// Unmarshal data
createdUser:= make([]User, 1)
err = surrealdb.Unmarshal(data, &createdUser)
Although from testing it the following will work. I am not sure if the document version using make([]User, 1) is attended or this updated example is the intended solution.
type User struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
}
user:= User{
Name: "Test",
}
data, err := handler.db.Create("user", user)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// Unmarshal data
createdUser:= User{}
err = surrealdb.Unmarshal(data, &createdUser)
Hi @lukasbowen and @thecodekitchen.
I'm sorry for your bad experience with the driver.
the problem you are facing is caused by RPC data response to change with beta 8 to 9.
The driver has been updated but there is no release at the moment.
You can use go get ithub.com/surrealdb/surrealdb.go@0316f40
If it is not working please let me know I can look into out.
also if docs are not enough you can look into
unit tests and tests the lib yourself.
Thanks ElecTwix! Will do that now