github.com/lingyao2333/mo-zero@v1.4.1/core/mapping/jsonunmarshaler.go (about) 1 package mapping 2 3 import ( 4 "io" 5 6 "github.com/lingyao2333/mo-zero/core/jsonx" 7 ) 8 9 const jsonTagKey = "json" 10 11 var jsonUnmarshaler = NewUnmarshaler(jsonTagKey) 12 13 // UnmarshalJsonBytes unmarshals content into v. 14 func UnmarshalJsonBytes(content []byte, v interface{}) error { 15 return unmarshalJsonBytes(content, v, jsonUnmarshaler) 16 } 17 18 // UnmarshalJsonMap unmarshals content from m into v. 19 func UnmarshalJsonMap(m map[string]interface{}, v interface{}) error { 20 return jsonUnmarshaler.Unmarshal(m, v) 21 } 22 23 // UnmarshalJsonReader unmarshals content from reader into v. 24 func UnmarshalJsonReader(reader io.Reader, v interface{}) error { 25 return unmarshalJsonReader(reader, v, jsonUnmarshaler) 26 } 27 28 func unmarshalJsonBytes(content []byte, v interface{}, unmarshaler *Unmarshaler) error { 29 var m map[string]interface{} 30 if err := jsonx.Unmarshal(content, &m); err != nil { 31 return err 32 } 33 34 return unmarshaler.Unmarshal(m, v) 35 } 36 37 func unmarshalJsonReader(reader io.Reader, v interface{}, unmarshaler *Unmarshaler) error { 38 var m map[string]interface{} 39 if err := jsonx.UnmarshalFromReader(reader, &m); err != nil { 40 return err 41 } 42 43 return unmarshaler.Unmarshal(m, v) 44 }