From 5938bfdd118f5f3201e95123e202428d04b506eb Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Thu, 30 May 2024 17:35:19 +0800 Subject: [PATCH] add global function: readjsonresponse() and readfilejson() --- elk/global/readjson.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 elk/global/readjson.go diff --git a/elk/global/readjson.go b/elk/global/readjson.go new file mode 100644 index 00000000..edd3a6c6 --- /dev/null +++ b/elk/global/readjson.go @@ -0,0 +1,38 @@ +package global + +import ( + "encoding/json" + "fmt" + "io" + "net/http" +) + +func ReadJSONResponse(r *http.Response, v any) error { + b, err := io.ReadAll(r.Body) + if err != nil { + return fmt.Errorf("reading response body: %w", err) + } + + if r.StatusCode != http.StatusOK { + return fmt.Errorf("response status: %d, body: %s", r.StatusCode, string(b)) + } + + err = json.Unmarshal(b, v) + if err != nil { + return fmt.Errorf("unmarshalling response json: %w", err) + } + return nil +} + +func ReadFileJSON(path string, v any) error { + bytes, err := FileReadBytes(path) + if err != nil { + return fmt.Errorf("reading file: %w", err) + } + + err = json.Unmarshal(bytes, v) + if err != nil { + return fmt.Errorf("unmarshalling file json: %w", err) + } + return nil +} -- Gitee