typed.go
func (t Typed) StringInt(key string) map[string]int {
	raw, ok := t.getmap(key)
	if ok == false {
		return nil
	}
	m := make(map[string]int, len(raw))
	for k, value := range raw {
		switch t := value.(type) {
		case int:
			m[k] = t
		case float64:
			m[k] = int(t)
		case string:
			i, err := strconv.Atoi(t)
			if err != nil {
				return nil
			}
			m[k] = i
		}
	}
	return m
}
func (t Typed) StringInt(key string) map[string]int {
	raw, ok := t.getmap(key)
	if ok == false {
		return nil
	}
	m := make(map[string]int, len(raw))
	for k, value := range raw {
		switch t := value.(type) {
		case int:
			m[k] = t
		case float64:
			m[k] = int(t)
		case string:
			i, err := strconv.Atoi(t)
			if err != nil {
				return nil
			}
			m[k] = i
		}
	}
	return m
}
// Returns an map[string]int
// Some work is done to handle the fact that JSON ints
// are represented as floats.