bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/pkg/exprhelpers/jsonextract.go (about) 1 package exprhelpers 2 3 import ( 4 "strings" 5 6 "github.com/buger/jsonparser" 7 8 log "github.com/sirupsen/logrus" 9 ) 10 11 func JsonExtractLib(jsblob string, target ...string) string { 12 value, dataType, _, err := jsonparser.Get( 13 jsonparser.StringToBytes(jsblob), 14 target..., 15 ) 16 if err != nil { 17 log.Errorf("jsonExtractLib : %+v : %s", target, err) 18 return "" 19 } 20 if dataType == jsonparser.NotExist { 21 log.Debugf("%+v doesn't exist", target) 22 return "" 23 } 24 strvalue := string(value) 25 //debug stuff 26 return strvalue 27 } 28 29 func JsonExtract(jsblob string, target string) string { 30 if !strings.HasPrefix(target, "[") { 31 target = strings.Replace(target, "[", ".[", -1) 32 } 33 fullpath := strings.Split(target, ".") 34 35 log.Tracef("extract path %+v", fullpath) 36 return JsonExtractLib(jsblob, fullpath...) 37 }