diff --git a/g/encoding/gjson/gjson.go b/g/encoding/gjson/gjson.go index aa4ced6cb..197abe523 100644 --- a/g/encoding/gjson/gjson.go +++ b/g/encoding/gjson/gjson.go @@ -411,10 +411,13 @@ func (j *Json) Get(pattern string) interface{} { // 根据pattern层级查找变量指针 func (j *Json) getPointerByPattern(pattern string) *interface{} { - start := 0 index := len(pattern) + start := 0 length := 0 pointer := j.p + if index == 0 { + return pointer + } for { if r := j.checkPatternByPointer(pattern[start:index], pointer); r != nil { length += index - start diff --git a/geg/os/gcfg/config.yml b/geg/os/gcfg/config.yml new file mode 100644 index 000000000..1505e811d --- /dev/null +++ b/geg/os/gcfg/config.yml @@ -0,0 +1,23 @@ +redis: + cache: + - host: 192.168.0.100 + port: 6379 + db: 0 + - host: 192.168.0.100 + port: 6379 + db: 1 + disk: + - host: 192.168.0.100 + port: 6380 + db: 0 + - host: 192.168.0.100 + port: 6380 + db: 1 + +memcache: + - host: 192.168.0.101 + port: 11211 + expire: 60 + - host: 192.168.0.102 + port: 11211 + expire: 60 diff --git a/geg/os/gcfg/gcfg1.go b/geg/os/gcfg/gcfg1.go new file mode 100644 index 000000000..98a1b117e --- /dev/null +++ b/geg/os/gcfg/gcfg1.go @@ -0,0 +1,15 @@ +package main + +import ( + "fmt" + "gitee.com/johng/gf/g/os/gcfg" +) + +func main() { + c := gcfg.New("/home/john/Workspace/Go/GOPATH/src/gitee.com/johng/gf/geg/os/gcfg") + redisConfig := c.GetArray("redis-cache", "redis.yml") + memcacheConfig := c.GetArray("", "memcache.yml") + fmt.Println(redisConfig) + fmt.Println(memcacheConfig) +} + diff --git a/geg/os/gcfg/gcfg2.go b/geg/os/gcfg/gcfg2.go new file mode 100644 index 000000000..76640d67a --- /dev/null +++ b/geg/os/gcfg/gcfg2.go @@ -0,0 +1,13 @@ +package main + +import ( + "fmt" + "gitee.com/johng/gf/g/os/gcfg" +) + +func main() { + c := gcfg.New("/home/john/Workspace/Go/GOPATH/src/gitee.com/johng/gf/geg/os/gcfg") + v := c.GetArray("memcache") + fmt.Println(v) +} + diff --git a/geg/os/gcfg/memcache.yml b/geg/os/gcfg/memcache.yml new file mode 100644 index 000000000..1808acaec --- /dev/null +++ b/geg/os/gcfg/memcache.yml @@ -0,0 +1,6 @@ +- host: 192.168.0.101 + port: 11211 + expire: 60 +- host: 192.168.0.102 + port: 11211 + expire: 60 diff --git a/geg/os/gcfg/redis.yml b/geg/os/gcfg/redis.yml new file mode 100644 index 000000000..db0b6d79a --- /dev/null +++ b/geg/os/gcfg/redis.yml @@ -0,0 +1,14 @@ +redis-cache: + - host: 192.168.0.100 + port: 6379 + db: 0 + - host: 192.168.0.100 + port: 6379 + db: 1 +redis-disk: + - host: 192.168.0.100 + port: 6380 + db: 0 + - host: 192.168.0.100 + port: 6380 + db: 1 \ No newline at end of file