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  }