I am writing a function in which I am getting data in JSON format. I want to convert this JSON into string format then write in log file. Below is my code:
func JSONToString(logs map[string]interface{}){
jsonLog, err := json.Marshal(logs)
if err != nil {
fmt.Println(err.Error())
}
jsonLogString := string(jsonLog[:len(jsonLog)])
logfile := "/ServiceLogs/" + "UploadServiceLog_" + currentTime.Format("2006-01-02") + ".txt"
jsonLogFile, err := os.OpenFile(logfile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
if err != nil {
fmt.Println(err.Error())
}
defer jsonLogFile.Close()
jsonLogFile.WriteString(jsonLogString + "
")
jsonLogFile.Close()
}
Now what I get in logs is like
{"Errors":{},"RequestEnd":1569214715575873000,"ResponseTime":1569214715575.873,"ServiceName":"IMAGE_LISTING_SERVICE","Times":{"BasicValidationTime":0.150016,"ExtraValidationTime":0.002048,"FormParsingTime":0.479232,"ImagePgConnectionTime":0.31488,"RequestDecodingTime":0.009216}}
But I actually wanted this:
"{\"Errors\":{},\"RequestEnd\":1569214715575873000,\"ResponseTime\":1569214715575.873,\"ServiceName\":\"IMAGE_LISTING_SERVICE\",\"Times\":{\"BasicValidationTime\":0.150016,\"ExtraValidationTime\":0.002048,\"FormParsingTime\":0.479232,\"ImagePgConnectionTime\":0.31488,\"RequestDecodingTime\":0.009216}}"
I don't know how to achieve this.