util.go 948 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package elastic
  2. import (
  3. "encoding/json"
  4. "log"
  5. "runtime"
  6. "strings"
  7. )
  8. //obj(string,M)转M,查询用到
  9. func objToMap(obj interface{}) *map[string]interface{} {
  10. data := make(map[string]interface{})
  11. if s, ok := obj.(string); ok {
  12. json.Unmarshal([]byte(strings.Replace(s, "'", "\"", -1)), &data)
  13. } else if s1, ok1 := obj.(map[string]interface{}); ok1 {
  14. data = s1
  15. } else if s1, ok1 := obj.(*map[string]interface{}); ok1 {
  16. return s1
  17. } else {
  18. data = nil
  19. }
  20. return &data
  21. }
  22. //对象数组转成string数组
  23. func objArrToStringArr(old []interface{}) []string {
  24. if old != nil {
  25. new := make([]string, len(old))
  26. for i, v := range old {
  27. new[i], _ = v.(string)
  28. }
  29. return new
  30. } else {
  31. return nil
  32. }
  33. }
  34. //出错拦截
  35. func catch() {
  36. if r := recover(); r != nil {
  37. log.Println(r)
  38. for skip := 0; ; skip++ {
  39. _, file, line, ok := runtime.Caller(skip)
  40. if !ok {
  41. break
  42. }
  43. go log.Printf("%v,%v\n", file, line)
  44. }
  45. }
  46. }