-
Notifications
You must be signed in to change notification settings - Fork 18.3k
Closed
Labels
FrozenDueToAgeSuggestedIssues that may be good for new contributors looking for work to do.Issues that may be good for new contributors looking for work to do.
Milestone
Description
by tkappler:
What steps will reproduce the problem? 1. Run the following program using Go tip. Go 1, and therefore play.golang.org, will not work since their JSON encoder ignores embedded fields in a struct. ---------------------------------------- package main import ( "encoding/json" "fmt" ) type IntType int type MyStruct struct { IntType Name string } func main() { var i IntType = 11 a := MyStruct{i, "test"} jsonStr, err := json.Marshal(a) fmt.Println(string(jsonStr), err) } ---------------------------------------- What is the expected output? A JSON serialization of a, something like {"IntType": 11, "Name": "test"}. What do you see instead? ---------------------------------------- panic: reflect: NumField of non-struct type [recovered] panic: interface conversion: string is not error: missing method Error goroutine 1 [running]: ----- stack segment boundary ----- encoding/json.func·002(0x101d0e90, 0x101d0100) /Users/thomas.kappler/software/go/src/pkg/encoding/json/encode.go:220 +0x92 ----- stack segment boundary ----- reflect.(*rtype).NumField(0x86878, 0xc, 0xc, 0x86878) /Users/thomas.kappler/software/go/src/pkg/reflect/type.go:623 +0x7e encoding/json.typeFields(0xc200042000, 0xb7868, 0xc200042000, 0xb7868, 0x0, ...) /Users/thomas.kappler/software/go/src/pkg/encoding/json/encode.go:607 +0x3a9 encoding/json.cachedTypeFields(0xc200042000, 0xb7868, 0x192, 0xc200042000, 0xb7868, ...) /Users/thomas.kappler/software/go/src/pkg/encoding/json/encode.go:694 +0xcb encoding/json.(*encodeState).reflectValueQuoted(0xc200068000, 0xb7868, 0xc200043400, 0x192, 0x0, ...) /Users/thomas.kappler/software/go/src/pkg/encoding/json/encode.go:346 +0x19b5 encoding/json.(*encodeState).reflectValue(0xc200068000, 0xb7868, 0xc200043400, 0x192) /Users/thomas.kappler/software/go/src/pkg/encoding/json/encode.go:252 +0x48 encoding/json.(*encodeState).marshal(0xc200068000, 0xb7868, 0xc200043400, 0x0, 0x0, ...) /Users/thomas.kappler/software/go/src/pkg/encoding/json/encode.go:223 +0x89 encoding/json.Marshal(0xb7868, 0xc200043400, 0xcd8e8, 0x4, 0xb7868, ...) /Users/thomas.kappler/software/go/src/pkg/encoding/json/encode.go:117 +0x60 main.main() /Users/thomas.kappler/jsonEmbedded.go:19 +0x7f ---------------------------------------- Which compiler are you using (5g, 6g, 8g, gccgo)? $ go env GOARCH="amd64" GOBIN="" GOCHAR="6" GOEXE="" GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="EDITED/go" GOROOT="EDITED/go" GOTOOLDIR="EDITED/go/pkg/tool/darwin_amd64" CGO_ENABLED="1" Which operating system are you using? Mac OS X 10.6.8 Which version are you using? (run 'go version') go version devel +697f36fec52c Fri Nov 30 20:02:30 2012 +1100 Please provide any additional information below.
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeSuggestedIssues that may be good for new contributors looking for work to do.Issues that may be good for new contributors looking for work to do.