我是Go新手,不確定如何解決此問題。在OOP中,我有一個基類動物和兩個貓和狗的子類。我想爲動物指定一個ToJson方法,它將適用於所有動物。在Go中將組合對象轉換爲json
我的問題是,當我打電話給dog.ToJson()我只得到狗的狗屬性,並沒有動物屬性。
如何讓ToJson按預期工作(即with recursion)?
編輯:更改了代碼以反映lbonn回答的建議,我無法按照自己的方式工作。 EDIT2:在質詢下面的代碼變化
package main
import (
"encoding/json"
"fmt"
)
type Animal struct {
Name string
}
type Cat struct {
CatProperty int64
Animal
}
type Dog struct {
DogProperty int64
Animal
}
func ToJson(i interface{}) []byte {
data,err := json.Marshal(i)
if err != nil {
panic("???")
}
return data
}
func main() {
dog := Dog{}
dog.Name = "rex"
dog.DogProperty = 2
fmt.Println(string(ToJson(dog)))
// Prints {"DogProperty":2}
// I want it to print {"Name":"rex","DogProperty":2}
}
我使用'hg clone -r 492fdf07797e https:// code.google.com/p/go'更新到最新版本,並且一切都很好,我的json按照我的預期創建。感謝您的好消息。 – iancoleman