我试图使用JSON包将Go结构转换为JSON,但我得到的只是{}。我确信这是很明显的事情,但我没有看到。
package main
import (
"fmt"
"encoding/json"
)
type User struct {
name string
}
func main() {
user := &User{name:"Frank"}
b, err := json.Marshal(user)
if err != nil {
fmt.Printf("Error: %s", err)
return;
}
fmt.Println(string(b))
}
然后当我试图运行它时,我得到这个:
$ 6g test.go && 6l -o test test.6 && ./test
{}
相关问题:
我在将struct转换为JSON时遇到了麻烦,将其作为Golang的响应发送,然后,后来通过Ajax在JavaScript中捕获相同的内容。
浪费了很多时间,所以在这里张贴解决方案。
在去:
// web server
type Foo struct {
Number int `json:"number"`
Title string `json:"title"`
}
foo_marshalled, err := json.Marshal(Foo{Number: 1, Title: "test"})
fmt.Fprint(w, string(foo_marshalled)) // write response to ResponseWriter (w)
在JavaScript中:
// web call & receive in "data", thru Ajax/ other
var Foo = JSON.parse(data);
console.log("number: " + Foo.number);
console.log("title: " + Foo.title);