Documentation
¶
Index ¶
- type Json
- func (val *Json) Apply(processor JsonValueProcessor) *Json
- func (j *Json) Array() ([]interface{}, error)
- func (j *Json) ArrayLength() int
- func (j *Json) Bool() (bool, error)
- func (j *Json) Bytes() ([]byte, error)
- func (j *Json) CheckGet(key string) *Json
- func (j *Json) ContainsKey(key string) bool
- func (j *Json) Del(key string) *Json
- func (j *Json) DigestJSONForEqual() string
- func (j *Json) Encode() ([]byte, error)
- func (j *Json) EncodeToString() (string, error)
- func (j *Json) EncodeToStringOrDefault(defaultVal string) string
- func (j *Json) Get(key string) *Json
- func (j *Json) GetIndex(index int) *Json
- func (val *Json) GetKeyValuesIfAllContains(keys []string) *Json
- func (j *Json) GetPath(branch ...string) *Json
- func (j *Json) Interface() interface{}
- func (val *Json) IsEmpty() bool
- func (j *Json) IsEmptyOrNull() bool
- func (val *Json) IsNullJson() bool
- func (j *Json) IsSameJSONWith(other *Json) bool
- func (j *Json) Map() (map[string]interface{}, error)
- func (j *Json) MustArray(args ...[]interface{}) []interface{}
- func (j *Json) MustBool(args ...bool) bool
- func (j *Json) MustFloat64(args ...float64) float64
- func (j *Json) MustInt(args ...int) int
- func (j *Json) MustInt64(args ...int64) int64
- func (j *Json) MustMap(args ...map[string]interface{}) map[string]interface{}
- func (j *Json) MustString(args ...string) string
- func (j *Json) MustStringArray(args ...[]string) []string
- func (j *Json) MustUint64(args ...uint64) uint64
- func (val *Json) Select(key string) *Json
- func (j *Json) Set(key string, val interface{}) *Json
- func (j *Json) SetPath(branch []string, val interface{}) *Json
- func (j *Json) SetValue(val interface{}) *Json
- func (j *Json) String() (string, error)
- func (j *Json) StringArray() ([]string, error)
- func (val *Json) ToSimpleJson() *simplejson.Json
- func (j *Json) TrampolineKeys(keys []string, processors []JsonKeyValueProcessor, initJson *Json) (*Json, error)
- func (j *Json) TryAdd(val interface{}) *Json
- func (j *Json) WithKey(key string) *jsonWithItemKeyValue
- type JsonKeyValueProcessor
- type JsonValueProcessor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Json ¶
type Json struct {
// contains filtered or unexported fields
}
Json is immutable type when it's empty
func FromNotEmptySimpleJson ¶
func FromNotEmptySimpleJson(jsonVal *simplejson.Json) *Json
func FromSimpleJson ¶
func FromSimpleJson(jsonVal *simplejson.Json) (*Json, error)
func NewJSONArray ¶
func NewJSONArray() *Json
func NewJSONObject ¶
func NewJSONObject() *Json
func (*Json) Apply ¶
func (val *Json) Apply(processor JsonValueProcessor) *Json
func (*Json) ArrayLength ¶
func (*Json) CheckGet ¶
CheckGet returns a pointer to a new `Json` object and a `bool` identifying success or failure
useful for chained operations when success is important:
if data, ok := js.Get("top_level").CheckGet("inner"); ok {
log.Println(data)
}
func (*Json) ContainsKey ¶
func (*Json) DigestJSONForEqual ¶
func (*Json) EncodeToString ¶
func (*Json) EncodeToStringOrDefault ¶
func (*Json) Get ¶
Get returns a pointer to a new `Json` object for `key` in its `map` representation
useful for chaining operations (to traverse a nested JSON):
js.Get("top_level").Get("dict").Get("value").Int()
func (*Json) GetIndex ¶
GetIndex returns a pointer to a new `Json` object for `index` in its `array` representation
this is the analog to Get when accessing elements of a json array instead of a json object:
js.Get("top_level").Get("array").GetIndex(1).Get("key").Int()
func (*Json) GetKeyValuesIfAllContains ¶
return new json with all key-values if all the keys exists
func (*Json) GetPath ¶
GetPath searches for the item as specified by the branch without the need to deep dive using Get()'s.
js.GetPath("top_level", "dict")
func (*Json) Interface ¶
func (j *Json) Interface() interface{}
Interface returns the underlying data
func (*Json) IsEmptyOrNull ¶
func (*Json) IsNullJson ¶
func (*Json) IsSameJSONWith ¶
whether json a and json b have the same value
func (*Json) MustArray ¶
func (j *Json) MustArray(args ...[]interface{}) []interface{}
MustArray guarantees the return of a `[]interface{}` (with optional default)
useful when you want to interate over array values in a succinct manner:
for i, v := range js.Get("results").MustArray() {
fmt.Println(i, v)
}
func (*Json) MustBool ¶
MustBool guarantees the return of a `bool` (with optional default)
useful when you explicitly want a `bool` in a single value return context:
myFunc(js.Get("param1").MustBool(), js.Get("optional_param").MustBool(true))
func (*Json) MustFloat64 ¶
MustFloat64 guarantees the return of a `float64` (with optional default)
useful when you explicitly want a `float64` in a single value return context:
myFunc(js.Get("param1").MustFloat64(), js.Get("optional_param").MustFloat64(5.150))
func (*Json) MustInt ¶
MustInt guarantees the return of an `int` (with optional default)
useful when you explicitly want an `int` in a single value return context:
myFunc(js.Get("param1").MustInt(), js.Get("optional_param").MustInt(5150))
func (*Json) MustInt64 ¶
MustInt64 guarantees the return of an `int64` (with optional default)
useful when you explicitly want an `int64` in a single value return context:
myFunc(js.Get("param1").MustInt64(), js.Get("optional_param").MustInt64(5150))
func (*Json) MustMap ¶
MustMap guarantees the return of a `map[string]interface{}` (with optional default)
useful when you want to interate over map values in a succinct manner:
for k, v := range js.Get("dictionary").MustMap() {
fmt.Println(k, v)
}
func (*Json) MustString ¶
MustString guarantees the return of a `string` (with optional default)
useful when you explicitly want a `string` in a single value return context:
myFunc(js.Get("param1").MustString(), js.Get("optional_param").MustString("my_default"))
func (*Json) MustStringArray ¶
MustStringArray guarantees the return of a `[]string` (with optional default)
useful when you want to interate over array values in a succinct manner:
for i, s := range js.Get("results").MustStringArray() {
fmt.Println(i, s)
}
func (*Json) MustUint64 ¶
MustUInt64 guarantees the return of an `uint64` (with optional default)
useful when you explicitly want an `uint64` in a single value return context:
myFunc(js.Get("param1").MustUint64(), js.Get("optional_param").MustUint64(5150))
func (*Json) SetPath ¶
SetPath modifies `Json`, recursively checking/creating map keys for the supplied path, and then finally writing in the value
func (*Json) StringArray ¶
StringArray type asserts to an `array` of `string`
func (*Json) ToSimpleJson ¶
func (val *Json) ToSimpleJson() *simplejson.Json
func (*Json) TrampolineKeys ¶
type JsonValueProcessor ¶
type JsonValueProcessor func(json *simplejson.Json) *simplejson.Json