I am getting following error while trying to marshal this struct
json: error calling MarshalJSON for type json.RawMessage: unexpected end of JSON input
for the object of below struct
type Chart struct {
ID int `json:"id,omitempty" db:"id"`
Name string `json:"name,omitempty" db:"name"`
Type string `json:"type,omitempty" db:"type"`
DashboardID int `json:"dashboard_id,omitempty"`
SourceType string `json:"source_type,omitempty" db:"source_type"`
Data json.RawMessage `json:"graph_data,ommitempty"`
}
func main() {
chart := Chart{}
chart.ID = 1
chart.Name = "Jishnu"
str, err := json.Marshal(chart)
fmt.Println(err)
}
Fixed by making Chart.Data
a pointer
Data *json.RawMessage `json:"data,ommitempty"`
Go 1.8 (currently rc3 as of writing) will correctly handle Marshalling of both a pointer and non-pointer json.RawMessage.
Fixing commit: https://github.com/golang/go/commit/1625da24106b610f89ff7a67a11581df95f8e234
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With