|
|
|
@ -116,6 +116,29 @@ func (data Data) MustGetIntSlice(key string) []int {
|
|
|
|
|
return values
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetData 取得資料
|
|
|
|
|
func (data Data) GetData(key string) (Data, error) {
|
|
|
|
|
value, err := data.Get(key)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch value.(type) {
|
|
|
|
|
case map[string]interface{}:
|
|
|
|
|
return Data(value.(map[string]interface{})), nil
|
|
|
|
|
case Data:
|
|
|
|
|
return value.(Data), nil
|
|
|
|
|
default:
|
|
|
|
|
return nil, ErrFormat
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MustGetData 強制取得資料
|
|
|
|
|
func (data Data) MustGetData(key string) Data {
|
|
|
|
|
value, _ := data.GetData(key)
|
|
|
|
|
return value
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetDataSlice 取得資料切片
|
|
|
|
|
func (data Data) GetDataSlice(key string) ([]Data, error) {
|
|
|
|
|
values, err := data.GetSlice(key)
|
|
|
|
|