From: qydysky Date: Sat, 5 Sep 2020 04:01:23 +0000 (+0800) Subject: 54 X-Git-Tag: v0.0.2~32 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=e9c1449e7b9d79db593c4ee8554a7b4a71f8c5fb;p=part%2F.git 54 --- diff --git a/Json.go b/Json.go index 41c92cd..196d0b6 100644 --- a/Json.go +++ b/Json.go @@ -1,6 +1,11 @@ package part import ( + "io" + "os" + "errors" + "strings" + goej "encoding/json" "github.com/thedevsaddam/gojsonq/v2" ) @@ -8,6 +13,37 @@ type json struct {} func Json() (*json) {return &json{}} +func (*json) Check(Source interface{}) error { + var jq *goej.Decoder + switch Source.(type) { + case string: + if Checkfile().IsExist(Source.(string)) { + fileObj,err := os.OpenFile(Source.(string),os.O_RDONLY,0644) + if err != nil { + return err + } + defer fileObj.Close() + jq = goej.NewDecoder(fileObj) + }else{ + jq = goej.NewDecoder(strings.NewReader(Source.(string))) + } + default: + return errors.New("json type != string") + } + + for { + _, err := jq.Token() + if err == io.EOF { + break + } + if err != nil { + return err + } + } + + return nil +} + func (*json) GetValFrom(Source interface{},key string)interface {}{ var jq *gojsonq.JSONQ switch Source.(type) {