// 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 unmarshaling %q, expected %q, got %q", b, expected, m) } } func main() { Decode() }