From cc7e8e3fbe89ce58fb1b7051f6a3aa1ac73ff698 Mon Sep 17 00:00:00 2001 From: skadilover <526389172@qq.com> Date: Fri, 1 Apr 2016 13:43:33 +0800 Subject: [PATCH 1/2] add len method when data is not array or map, return error. --- simplejson.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/simplejson.go b/simplejson.go index 27ce986..ad1cedc 100644 --- a/simplejson.go +++ b/simplejson.go @@ -444,3 +444,13 @@ func (j *Json) MustUint64(args ...uint64) uint64 { return def } + +func (j *Json) Len() (int, error) { + if array, err := j.Array(); err == nil { + return len(array), nil + } + if m, err := j.Map(); err == nil { + return len(m), nil + } + return -1, errors.New("not array or map.") +} From 911ad23cbcfbff01a95f3fccdc91582f93131c3c Mon Sep 17 00:00:00 2001 From: skadilover <526389172@qq.com> Date: Fri, 1 Apr 2016 13:50:00 +0800 Subject: [PATCH 2/2] Update simplejson.go --- simplejson.go | 1 + 1 file changed, 1 insertion(+) diff --git a/simplejson.go b/simplejson.go index ad1cedc..8d77c3b 100644 --- a/simplejson.go +++ b/simplejson.go @@ -445,6 +445,7 @@ func (j *Json) MustUint64(args ...uint64) uint64 { return def } +//return len of j when j is array or map,it is useful when handle json rpcs func (j *Json) Len() (int, error) { if array, err := j.Array(); err == nil { return len(array), nil