package main import ( "encoding/json" "fmt" "io" "log" "net/http" "strings" ) func UnmasrshalFromUrl(url string, v interface{}) error { // Usage: // - string with web url to raw json data // - struct type that describes json data at // // -- code -- // var parseTo // err := UnmasrshalFromUrl(, &parseTo) // -- code -- webClient := &http.Client{} // Get response from url webResp, err := webClient.Get(url) if err != nil { log.Println(err) return err } // Close response body defer webResp.Body.Close() // Convert from Reader to []byte jsonData, err := io.ReadAll(webResp.Body) if err != nil { log.Println(err) return err } // Convert []byte to string jsonDataStr := fmt.Sprintf("%s", jsonData) jsonDataStr = strings.ReplaceAll(jsonDataStr, "null", "0") // Covenrt string ot []byte jsonData = []byte(jsonDataStr) // LogDebug.Println(v) return json.Unmarshal([]byte(jsonData), &v) }