package mxj import ( "strings" ) // Sets the value for the path func (mv Map) SetValueForPath(value interface{}, path string) error { pathAry := strings.Split(path, ".") parentPathAry := pathAry[0 : len(pathAry)-1] parentPath := strings.Join(parentPathAry, ".") val, err := mv.ValueForPath(parentPath) if err != nil { return err } if val == nil { return nil // we just ignore the request if there's no val } key := pathAry[len(pathAry)-1] cVal := val.(map[string]interface{}) cVal[key] = value return nil }