2017-02-14 15 views
1

я получаю следующее сообщение об ошибке при попытке выстроить эту структуруJson ошибка при вызове MarshalJSON для типа json.RawMessage

JSon: ошибка при вызове MarshalJSON для типа json.RawMessage: неожиданный конец ввода JSON

для объекта ниже структуры

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) 
} 
+0

JSON действителен? – Elad

+1

@Flimzy добавил код для воспроизведения ошибки –

ответ

4

Fixed путем Chart.Data указатель

Data  *json.RawMessage `json:"data,ommitempty"` 

Go 1.8 (в настоящее время rc3 от написания) будет правильно обрабатывать маршаллинг как указателя, так и не указателя json.RawMessage.

Закрепление совершить: https://github.com/golang/go/commit/1625da24106b610f89ff7a67a11581df95f8e234