jsonextract.go 784 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package exprhelpers
  2. import (
  3. "strings"
  4. "github.com/buger/jsonparser"
  5. log "github.com/sirupsen/logrus"
  6. )
  7. func JsonExtractLib(jsblob string, target ...string) string {
  8. value, dataType, _, err := jsonparser.Get(
  9. jsonparser.StringToBytes(jsblob),
  10. target...,
  11. )
  12. if err != nil {
  13. log.Errorf("jsonExtractLib : %+v : %s", target, err)
  14. return ""
  15. }
  16. if dataType == jsonparser.NotExist {
  17. log.Debugf("%+v doesn't exist", target)
  18. return ""
  19. }
  20. strvalue := string(value)
  21. //debug stuff
  22. return strvalue
  23. }
  24. func JsonExtract(jsblob string, target string) string {
  25. if !strings.HasPrefix(target, "[") {
  26. target = strings.Replace(target, "[", ".[", -1)
  27. }
  28. fullpath := strings.Split(target, ".")
  29. log.Printf("path -> %+v", fullpath)
  30. return JsonExtractLib(jsblob, fullpath...)
  31. }