github.com/mymmsc/gox@v1.3.33/util/linkedhashset/serialization.go (about) 1 // Copyright (c) 2015, Emir Pasic. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package linkedhashset 6 7 import ( 8 "encoding/json" 9 "github.com/mymmsc/gox/util" 10 ) 11 12 func assertSerializationImplementation() { 13 var _ util.JSONSerializer = (*Set)(nil) 14 var _ util.JSONDeserializer = (*Set)(nil) 15 } 16 17 // ToJSON outputs the JSON representation of the set. 18 func (set *Set) ToJSON() ([]byte, error) { 19 return json.Marshal(set.Values()) 20 } 21 22 // FromJSON populates the set from the input JSON representation. 23 func (set *Set) FromJSON(data []byte) error { 24 elements := []interface{}{} 25 err := json.Unmarshal(data, &elements) 26 if err == nil { 27 set.Clear() 28 set.Add(elements...) 29 } 30 return err 31 }