package utils import ( "encoding/json" "testing" ) func TestConv(t *testing.T) { for _, v := range [][]interface{}{ []interface{}{ json.Number("123"), int64(123), }, []interface{}{ json.Number("abc"), int64(0), }, []interface{}{ "123", int64(0), }, []interface{}{ int64(123), int64(123), }, } { data := Interface2Int64WithDefault(v[0], 0) if data != v[1].(int64) { t.Fatal("Interface2Int64WithDefault failed") } } } func TestMarshal(t *testing.T) { type InnerStruct struct { InnerIntData int } type OutStruct struct { InnerStruct IntData int StrData string InnerData InnerStruct PtrInnerData *InnerStruct } type OutStruct2 struct { *InnerStruct IntData int StrData string } obj := OutStruct{ InnerStruct: InnerStruct{ InnerIntData: 3, }, IntData: 1, StrData: "2", InnerData: InnerStruct{ InnerIntData: 4, }, } t.Log(Format4Output(obj, false)) t.Log(Format4Output(Struct2FlatMap(obj), false)) obj2 := OutStruct2{ InnerStruct: &InnerStruct{ InnerIntData: 2, }, } t.Log(Format4Output(obj2, false)) t.Log(Format4Output(Struct2FlatMap(obj2), false)) }