golang 之 bson 與 struct 轉(zhuǎn)換
Posted on 2013-09-22 16:08 oathleo 閱讀(7711) 評論(0) 編輯 收藏 所屬分類: Golangbson的介紹不說了
golang下的解析包找到2個 一個是mongo的http://labix.org/gobson
,另外一個比較小眾https://github.com/sbunce/bson
這里用的是mongo的作為例子。
對象加上不同的注解,
可以輕松轉(zhuǎn)成xml json bson 想想都興奮
golang下的解析包找到2個 一個是mongo的http://labix.org/gobson
,另外一個比較小眾https://github.com/sbunce/bson
這里用的是mongo的作為例子。
對象加上不同的注解,
可以輕松轉(zhuǎn)成xml json bson 想想都興奮
package main
import (
"fmt"
"labix.org/v2/mgo/bson"
)
type TestStruct struct {
Name string
ID int32
}
func main() {
fmt.Println("start")
data, err := bson.Marshal(&TestStruct{Name: "Bob"})
if err != nil {
panic(err)
}
fmt.Println("%q", data)
value := TestStruct{}
err2 := bson.Unmarshal(data, &value)
if err2 != nil {
panic(err)
}
fmt.Println("value:", value)
mmap := bson.M{}
err3 := bson.Unmarshal(data, mmap)
if err3 != nil {
panic(err)
}
fmt.Println("mmap:", mmap)
}
import (
"fmt"
"labix.org/v2/mgo/bson"
)
type TestStruct struct {
Name string
ID int32
}
func main() {
fmt.Println("start")
data, err := bson.Marshal(&TestStruct{Name: "Bob"})
if err != nil {
panic(err)
}
fmt.Println("%q", data)
value := TestStruct{}
err2 := bson.Unmarshal(data, &value)
if err2 != nil {
panic(err)
}
fmt.Println("value:", value)
mmap := bson.M{}
err3 := bson.Unmarshal(data, mmap)
if err3 != nil {
panic(err)
}
fmt.Println("mmap:", mmap)
}