gf: github.com/johng-cn/gf/g/encoding/gjson Index | Files

package gjson

import "github.com/johng-cn/gf/g/encoding/gjson"

Package gjson provides quite flexible and useful API for JSON/XML/YAML/TOML content handling.

Index

Package Files

gjson.go

func Decode Uses

func Decode(b []byte) (interface{}, error)

解码字符串为interface{}变量

func DecodeTo Uses

func DecodeTo(b []byte, v interface{}) error

解析json字符串为go变量,注意第二个参数为指针(任意结构的变量)

func Encode Uses

func Encode(v interface{}) ([]byte, error)

编码go变量为json字符串,并返回json字符串指针

func Valid Uses

func Valid(v interface{}) bool

识别当前给定内容是否为JSON格式

type Json Uses

type Json struct {
    // contains filtered or unexported fields
}

json解析结果存放数组

func DecodeToJson Uses

func DecodeToJson(b []byte) (*Json, error)

解析json字符串为gjson.Json对象,并返回操作对象指针

func Load Uses

func Load(path string) (*Json, error)

支持多种配置文件类型转换为json格式内容并解析为gjson.Json对象

func LoadContent Uses

func LoadContent(data []byte, dataType ...string) (*Json, error)

支持的配置文件格式:xml, json, yaml/yml, toml, 默认为自动识别,当无法检测成功时使用json解析。

func New Uses

func New(value interface{}, unsafe ...bool) *Json

将变量转换为Json对象进行处理,该变量至少应当是一个map或者slice,否者转换没有意义

func NewUnsafe Uses

func NewUnsafe(value ...interface{}) *Json

创建一个非并发安全的Json对象

func (*Json) Append Uses

func (j *Json) Append(pattern string, value interface{}) error

指定pattern追加元素

func (*Json) Contains Uses

func (j *Json) Contains(pattern ...string) bool

判断锁给定pattern是否数据存在

func (*Json) Dump Uses

func (j *Json) Dump() error

打印Json对象

func (*Json) Get Uses

func (j *Json) Get(pattern ...string) interface{}

根据约定字符串方式访问json解析数据,参数形如: "items.name.first", "list.0"; 当pattern为空时,表示获取所有数据; 返回的结果类型的interface{},因此需要自己做类型转换; 如果找不到对应节点的数据,返回nil;

func (*Json) GetArray Uses

func (j *Json) GetArray(pattern string) []interface{}

获得一个数组[]interface{},方便操作,不需要自己做类型转换 注意,如果获取的值不存在,或者类型与json类型不匹配,那么将会返回nil

func (*Json) GetBool Uses

func (j *Json) GetBool(pattern string) bool

返回指定json中的bool(false:"", 0, false, off)

func (*Json) GetFloat32 Uses

func (j *Json) GetFloat32(pattern string) float32

func (*Json) GetFloat64 Uses

func (j *Json) GetFloat64(pattern string) float64

func (*Json) GetFloats Uses

func (j *Json) GetFloats(pattern string) []float64

func (*Json) GetInt Uses

func (j *Json) GetInt(pattern string) int

func (*Json) GetInt16 Uses

func (j *Json) GetInt16(pattern string) int16

func (*Json) GetInt32 Uses

func (j *Json) GetInt32(pattern string) int32

func (*Json) GetInt64 Uses

func (j *Json) GetInt64(pattern string) int64

func (*Json) GetInt8 Uses

func (j *Json) GetInt8(pattern string) int8

func (*Json) GetInterfaces Uses

func (j *Json) GetInterfaces(pattern string) []interface{}

func (*Json) GetInts Uses

func (j *Json) GetInts(pattern string) []int

func (*Json) GetJson Uses

func (j *Json) GetJson(pattern string) *Json

将检索值转换为Json对象指针返回

func (*Json) GetMap Uses

func (j *Json) GetMap(pattern string) map[string]interface{}

获得一个键值对关联数组/哈希表,方便操作,不需要自己做类型转换 注意,如果获取的值不存在,或者类型与json类型不匹配,那么将会返回nil

func (*Json) GetString Uses

func (j *Json) GetString(pattern string) string

返回指定json中的string

func (*Json) GetStrings Uses

func (j *Json) GetStrings(pattern string) []string

返回指定json中的strings(转换为[]string数组)

func (*Json) GetTime Uses

func (j *Json) GetTime(pattern string, format ...string) time.Time

func (*Json) GetTimeDuration Uses

func (j *Json) GetTimeDuration(pattern string) time.Duration

func (*Json) GetToStruct Uses

func (j *Json) GetToStruct(pattern string, objPointer interface{}) error

将指定变量转换为struct对象(对象属性赋值)

func (*Json) GetToVar Uses

func (j *Json) GetToVar(pattern string, v interface{}) error

将指定的json内容转换为指定结构返回,查找失败或者转换失败,目标对象转换为nil 注意第二个参数需要给的是**变量地址**

func (*Json) GetUint Uses

func (j *Json) GetUint(pattern string) uint

func (*Json) GetUint16 Uses

func (j *Json) GetUint16(pattern string) uint16

func (*Json) GetUint32 Uses

func (j *Json) GetUint32(pattern string) uint32

func (*Json) GetUint64 Uses

func (j *Json) GetUint64(pattern string) uint64

func (*Json) GetUint8 Uses

func (j *Json) GetUint8(pattern string) uint8

func (*Json) Len Uses

func (j *Json) Len(pattern string) int

计算指定pattern的元素长度(pattern对应数据类型为map[string]interface{}/[]interface{}时有效)

func (*Json) Remove Uses

func (j *Json) Remove(pattern string) error

动态删除层级变量

func (*Json) Set Uses

func (j *Json) Set(pattern string, value interface{}) error

动态设置层级变量

func (*Json) SetSplitChar Uses

func (j *Json) SetSplitChar(char byte)

设置自定义的层级分隔符号

func (*Json) SetViolenceCheck Uses

func (j *Json) SetViolenceCheck(check bool)

设置是否执行层级冲突检查,当键名中存在层级符号时需要开启该特性,默认为关闭。 开启比较耗性能,也不建议允许键名中存在分隔符,最好在应用端避免这种情况。

func (*Json) ToArray Uses

func (j *Json) ToArray() []interface{}

转换为[]interface{}类型,如果转换失败,返回nil

func (*Json) ToJson Uses

func (j *Json) ToJson() ([]byte, error)

func (*Json) ToJsonIndent Uses

func (j *Json) ToJsonIndent() ([]byte, error)

func (*Json) ToMap Uses

func (j *Json) ToMap() map[string]interface{}

转换为map[string]interface{}类型,如果转换失败,返回nil

func (*Json) ToStruct Uses

func (j *Json) ToStruct(o interface{}) error

转换为指定的struct对象

func (*Json) ToToml Uses

func (j *Json) ToToml() ([]byte, error)

func (*Json) ToXml Uses

func (j *Json) ToXml(rootTag ...string) ([]byte, error)

func (*Json) ToXmlIndent Uses

func (j *Json) ToXmlIndent(rootTag ...string) ([]byte, error)

func (*Json) ToYaml Uses

func (j *Json) ToYaml() ([]byte, error)

Package gjson imports 15 packages (graph). Updated 2019-03-21. Refresh now. Tools for package owners.