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  }