github.com/codingeasygo/util@v0.0.0-20231206062002-1ce2f004b7d9/xjson/xjson.go (about) 1 package xjson 2 3 import ( 4 "encoding/json" 5 "io" 6 "io/ioutil" 7 "os" 8 ) 9 10 //WriteJSON will marshal value to string and write to io.Writer 11 func WriteJSON(w io.Writer, v interface{}) (n int, err error) { 12 data, err := json.Marshal(v) 13 if err == nil { 14 n, err = w.Write(data) 15 } 16 return 17 } 18 19 //WriteJSON will read all data from io.Reader and unmashl to value 20 func ReadJSON(r io.Reader, v interface{}) (n int, err error) { 21 data, err := ioutil.ReadAll(r) 22 if err == nil { 23 err = json.Unmarshal(data, v) 24 } 25 return 26 } 27 28 //WriteJSONFile will marshal value to string and write to file 29 func WriteJSONFile(filename string, v interface{}) (err error) { 30 file, err := os.OpenFile(filename, os.O_TRUNC|os.O_CREATE|os.O_WRONLY, os.ModePerm) 31 if err == nil { 32 _, err = WriteJSON(file, v) 33 file.Close() 34 } 35 return 36 } 37 38 //ReadSONFile will read all data from io.Reader and unmashl to value 39 func ReadSONFile(filename string, v interface{}) (err error) { 40 file, err := os.Open(filename) 41 if err == nil { 42 _, err = ReadJSON(file, v) 43 file.Close() 44 } 45 return 46 }