improve gjson/gparser/gcfg/gvar

This commit is contained in:
John
2019-07-29 20:37:49 +08:00
parent ef8351151d
commit a98ad9577b
11 changed files with 353 additions and 611 deletions

View File

@ -43,6 +43,10 @@ func (j *Json) Get(pattern string, def ...interface{}) interface{} {
j.mu.RLock()
defer j.mu.RUnlock()
if pattern == "." {
pattern = ""
}
var result *interface{}
if j.vc {
result = j.getPointerByPattern(pattern)

View File

@ -1,63 +0,0 @@
// Copyright 2017 gf Author(https://github.com/gogf/gf). All Rights Reserved.
//
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file,
// You can obtain one at https://github.com/gogf/gf.
package gjson
//func MarshalOrdered(value interface{}) ([]byte, error) {
// buffer := bytes.NewBuffer(nil)
// rv := reflect.ValueOf(value)
// kind := rv.Kind()
// if kind == reflect.Ptr {
// rv = rv.Elem()
// kind = rv.Kind()
// }
// switch kind {
// case reflect.Slice: fallthrough
// case reflect.Array:
// buffer.WriteByte('[')
// length := rv.Len()
// for i := 0; i < length; i++ {
// if p, err := MarshalOrdered(rv.Index(i).Interface()); err != nil {
// return nil, err
// } else {
// buffer.Write(p)
// if i < length - 1 {
// buffer.WriteByte(',')
// }
// }
// }
// buffer.WriteByte(']')
// case reflect.Map: fallthrough
// case reflect.Struct:
// m := gconv.Map(value, "json")
// keys := make([]string, len(m))
// index := 0
// for key := range m {
// keys[index] = key
// index++
// }
// sort.Strings(keys)
// buffer.WriteByte('{')
// for i, key := range keys {
// if p, err := MarshalOrdered(m[key]); err != nil {
// return nil, err
// } else {
// buffer.WriteString(fmt.Sprintf(`"%s":%s`, key, string(p)))
// if i < index - 1 {
// buffer.WriteByte(',')
// }
// }
// }
// buffer.WriteByte('}')
// default:
// if p, err := json.Marshal(value); err != nil {
// return nil, err
// } else {
// buffer.Write(p)
// }
// }
// return buffer.Bytes(), nil
//}