func ToStringMap(m map[string]interface{}) *StringMap {
	n := NewStringMap()
	defer n.Unlock()
	n.Lock()
	for k, v := range m {
		n.M[k] = v.(string)
	}
	return n
}
ToStringMap converts a map[string]interface{} into a StringMap
creating all new map values (concurrency safe clone).
package util
import (
	"encoding/json"
	"fmt"
	"sort"
	"strings"
	"sync"
)
type StringMap struct {
	M map[string]string
	sync.Mutex
}
func NewStringMap() *StringMap {
	m := new(StringMap)
	m.Init()
	return m
}