gf: github.com/gogf/gf/g/encoding/gparser Index | Files

package gparser

import "github.com/gogf/gf/g/encoding/gparser"

Package gparser provides a flexible and easy way for accessing/converting variable and JSON/XML/YAML/TOML contents.

Index

Package Files

gparser.go

func VarToJson Uses

func VarToJson(value interface{}) ([]byte, error)

func VarToJsonIndent Uses

func VarToJsonIndent(value interface{}) ([]byte, error)

func VarToStruct Uses

func VarToStruct(value interface{}, obj interface{}) error

将变量解析为对应的struct对象,注意传递的参数为struct对象指针

func VarToToml Uses

func VarToToml(value interface{}) ([]byte, error)

func VarToXml Uses

func VarToXml(value interface{}, rootTag ...string) ([]byte, error)

func VarToXmlIndent Uses

func VarToXmlIndent(value interface{}, rootTag ...string) ([]byte, error)

func VarToYaml Uses

func VarToYaml(value interface{}) ([]byte, error)

type Parser Uses

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

func Load Uses

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

func LoadContent Uses

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

支持的数据内容格式:json(默认), xml, yaml/yml, toml

func New Uses

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

将变量转换为Parser对象进行处理,该变量至少应当是一个map或者array,否者转换没有意义 value可以传递nil, 表示创建一个空的Parser对象

func NewUnsafe Uses

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

非并发安全Parser对象

func (*Parser) Append Uses

func (p *Parser) Append(pattern string, value interface{}) error

指定pattern追加元素

func (*Parser) Dump Uses

func (p *Parser) Dump() error

打印Json对象

func (*Parser) Get Uses

func (p *Parser) Get(pattern ...string) interface{}

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

func (*Parser) GetArray Uses

func (p *Parser) GetArray(pattern string) []interface{}

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

func (*Parser) GetBool Uses

func (p *Parser) GetBool(pattern string) bool

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

func (*Parser) GetFloat32 Uses

func (p *Parser) GetFloat32(pattern string) float32

func (*Parser) GetFloat64 Uses

func (p *Parser) GetFloat64(pattern string) float64

func (*Parser) GetFloats Uses

func (p *Parser) GetFloats(pattern string) []float64

func (*Parser) GetInt Uses

func (p *Parser) GetInt(pattern string) int

func (*Parser) GetInt16 Uses

func (p *Parser) GetInt16(pattern string) int16

func (*Parser) GetInt32 Uses

func (p *Parser) GetInt32(pattern string) int32

func (*Parser) GetInt64 Uses

func (p *Parser) GetInt64(pattern string) int64

func (*Parser) GetInt8 Uses

func (p *Parser) GetInt8(pattern string) int8

func (*Parser) GetInterfaces Uses

func (p *Parser) GetInterfaces(pattern string) []interface{}

func (*Parser) GetInts Uses

func (p *Parser) GetInts(pattern string) []int

func (*Parser) GetMap Uses

func (p *Parser) GetMap(pattern string) map[string]interface{}

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

func (*Parser) GetString Uses

func (p *Parser) GetString(pattern string) string

返回指定json中的string

func (*Parser) GetStrings Uses

func (p *Parser) GetStrings(pattern string) []string

func (*Parser) GetTime Uses

func (p *Parser) GetTime(pattern string, format ...string) time.Time

func (*Parser) GetTimeDuration Uses

func (p *Parser) GetTimeDuration(pattern string) time.Duration

func (*Parser) GetToStruct Uses

func (p *Parser) GetToStruct(pattern string, objPointer interface{}) error

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

func (*Parser) GetToVar Uses

func (p *Parser) GetToVar(pattern string, v interface{}) error

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

func (*Parser) GetUint Uses

func (p *Parser) GetUint(pattern string) uint

func (*Parser) GetUint16 Uses

func (p *Parser) GetUint16(pattern string) uint16

func (*Parser) GetUint32 Uses

func (p *Parser) GetUint32(pattern string) uint32

func (*Parser) GetUint64 Uses

func (p *Parser) GetUint64(pattern string) uint64

func (*Parser) GetUint8 Uses

func (p *Parser) GetUint8(pattern string) uint8

func (*Parser) Len Uses

func (p *Parser) Len(pattern string) int

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

func (*Parser) Remove Uses

func (p *Parser) Remove(pattern string) error

动态删除变量节点

func (*Parser) Set Uses

func (p *Parser) Set(pattern string, value interface{}) error

根据pattern查找并设置数据 注意:写入的时候"."符号只能表示层级,不能使用带"."符号的键名

func (*Parser) SetSplitChar Uses

func (p *Parser) SetSplitChar(char byte)

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

func (*Parser) SetViolenceCheck Uses

func (p *Parser) SetViolenceCheck(check bool)

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

func (*Parser) ToArray Uses

func (p *Parser) ToArray() []interface{}

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

func (*Parser) ToJson Uses

func (p *Parser) ToJson() ([]byte, error)

func (*Parser) ToJsonIndent Uses

func (p *Parser) ToJsonIndent() ([]byte, error)

func (*Parser) ToMap Uses

func (p *Parser) ToMap() map[string]interface{}

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

func (*Parser) ToStruct Uses

func (p *Parser) ToStruct(o interface{}) error

将变量解析为对应的struct对象,注意传递的参数为struct对象指针

func (*Parser) ToToml Uses

func (p *Parser) ToToml() ([]byte, error)

func (*Parser) ToXml Uses

func (p *Parser) ToXml(rootTag ...string) ([]byte, error)

func (*Parser) ToXmlIndent Uses

func (p *Parser) ToXmlIndent(rootTag ...string) ([]byte, error)

func (*Parser) ToYaml Uses

func (p *Parser) ToYaml() ([]byte, error)

Package gparser imports 2 packages (graph) and is imported by 4 packages. Updated 2019-02-16. Refresh now. Tools for package owners.