diff --git a/g/encoding/gparser/gparser.go b/g/encoding/gparser/gparser.go index 75d4b490c..a65d1f828 100644 --- a/g/encoding/gparser/gparser.go +++ b/g/encoding/gparser/gparser.go @@ -22,6 +22,14 @@ func New (value interface{}, safe...bool) *Parser { return &Parser{gjson.New(value, safe...)} } +// 非并发安全Parser对象 +func NewUnsafe (value...interface{}) *Parser { + if len(value) > 0 { + return &Parser{gjson.New(value[0], false)} + } + return &Parser{gjson.New(nil, false)} +} + func Load (path string) (*Parser, error) { if j, e := gjson.Load(path); e == nil { return &Parser{j}, nil @@ -144,6 +152,11 @@ func (p *Parser) Set(pattern string, value interface{}) error { return p.json.Set(pattern, value) } +// 指定pattern追加元素 +func (j *Parser) Append(pattern string, value interface{}) error { + return j.json.Append(pattern, value) +} + // 动态删除变量节点 func (p *Parser) Remove(pattern string) error { return p.json.Remove(pattern)