27 lines
529 B
Go
27 lines
529 B
Go
|
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
|
||
|
}
|