代码拉取完成,页面将自动刷新
package xjson
import (
"encoding/json"
"gitee.com/younland/brick/xtype"
)
// JSON ...
type JSON struct {
value interface{}
}
// New ...
func New(s string) *JSON {
j := &JSON{}
if err := json.Unmarshal([]byte(s), &j.value); err != nil {
j.value = nil
}
return j
}
// Key ...
func (j *JSON) Key(key string) *JSON {
if m, ok := j.value.(map[string]interface{}); ok {
if v, ok := m[key]; ok {
j.value = v
return j
}
}
j.value = nil
return j
}
// Index ...
func (j *JSON) Index(index int) *JSON {
if l, ok := j.value.([]interface{}); ok && index >= 0 && index < len(l) {
j.value = l[index]
return j
}
j.value = nil
return j
}
// Value ...
func (j *JSON) Value() interface{} {
return j.value
}
// ToString ...
func (j *JSON) ToString() string {
return xtype.ToString(j.value)
}
// ToInt ...
func (j *JSON) ToInt64() int64 {
return xtype.ToInt64(j.value)
}
// ToJSON ...
func (j *JSON) ToJSON() string {
if j.value == nil {
return ""
}
b, _ := json.Marshal(j.value)
return string(b)
}
// ToSlice ...
func (j *JSON) ToSlice() []interface{} {
switch (j.value).(type) {
case []interface{}:
return (j.value).([]interface{})
default:
return nil
}
}
// ToMap ...
func (j *JSON) ToMap() map[string]interface{} {
switch (j.value).(type) {
case map[string]interface{}:
return (j.value).(map[string]interface{})
default:
return nil
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。