Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Get ¶
func Get(data interface{}, pathElems ...interface{}) interface{}
Get is like GetError, except that if GetError would return an error, this function panics instead.
func GetError ¶
func GetError(data interface{}, pathElems ...interface{}) (interface{}, error)
GetError retrieves a value from a 'jsonish' data object, given a path to follow.
data is assumed to be either a map[string]interface{}, or a []interface{}.
pathElems should either be strings or int's. Any other type will cause a panic. So don't do it.
A pathElem of a string implies that GetError should expect a map at that location in the jsonish data. An int implies that it should expect a list. If this expectation is false, an error is returned.
If you attempt to index into a list such that the index is out of bounds, you'll get a panic just like if you passed an index to a slice that was out of bounds.
Accessing a map key which doesn't exist will return nil.
Example:
data = { "some": [ {"nested": {"value": 10}} ] } GetError(data, "some") #=> [{"nested":...}] GetError(data, "some", 0) #=> {"nested":...} GetError(data, "some", 0, "nested") #=> {"value": 10} GetError(data, "some", 0, "nested", "value") #=> 10 GetError(data, "wat") #=> nil GetError(data, "wat", "something") #=> panic(nil deref) GetError(data, "some", 1) #=> panic(out of bounds)
Types ¶
This section is empty.