| // Copyright 2012 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package main |
| |
| import ( |
| "encoding/json" |
| "log" |
| "reflect" |
| ) |
| |
| type FamilyMember struct { |
| Name string |
| Age int |
| Parents []string |
| } |
| |
| // STOP OMIT |
| |
| func Decode() { |
| b := []byte(`{"Name":"Bob","Age":20,"Parents":["Morticia", "Gomez"]}`) |
| var m FamilyMember |
| err := json.Unmarshal(b, &m) |
| |
| // STOP OMIT |
| |
| if err != nil { |
| panic(err) |
| } |
| |
| expected := FamilyMember{ |
| Name: "Bob", |
| Age: 20, |
| Parents: []string{"Morticia", "Gomez"}, |
| } |
| |
| if !reflect.DeepEqual(expected, m) { |
| log.Panicf("Error unmarshalling %q, expected %q, got %q", b, expected, m) |
| } |
| } |
| |
| func main() { |
| Decode() |
| } |