From 4d9ff7632386b9049e72015a15bf23bdf84c7aea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E7=BE=8E=E5=A8=9F?= Date: Mon, 13 Sep 2021 21:40:00 +0800 Subject: [PATCH 1/2] fix panic:obj is nil --- jsonpath.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/jsonpath.go b/jsonpath.go index 00dc6fd..e2fae2c 100644 --- a/jsonpath.go +++ b/jsonpath.go @@ -85,6 +85,9 @@ func (c *Compiled) Lookup(obj interface{}) (interface{}, error) { return nil, err } } + if obj == nil { + return nil, fmt.Errorf("obj is nil") + } if len(s.args.([]int)) > 1 { res := []interface{}{} @@ -115,6 +118,9 @@ func (c *Compiled) Lookup(obj interface{}) (interface{}, error) { return nil, err } } + if obj == nil { + return nil, fmt.Errorf("obj is nil") + } if argsv, ok := s.args.([2]interface{}); ok == true { obj, err = get_range(obj, argsv[0], argsv[1]) if err != nil { From 64c1ff47df7574de95b70e597926c4f7a8336c1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E7=BE=8E=E5=A8=9F?= Date: Fri, 24 Sep 2021 16:40:02 +0800 Subject: [PATCH 2/2] fix panic --- jsonpath.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jsonpath.go b/jsonpath.go index e2fae2c..f6f436a 100644 --- a/jsonpath.go +++ b/jsonpath.go @@ -86,7 +86,7 @@ func (c *Compiled) Lookup(obj interface{}) (interface{}, error) { } } if obj == nil { - return nil, fmt.Errorf("obj is nil") + return nil, nil } if len(s.args.([]int)) > 1 { @@ -119,7 +119,7 @@ func (c *Compiled) Lookup(obj interface{}) (interface{}, error) { } } if obj == nil { - return nil, fmt.Errorf("obj is nil") + return nil, nil } if argsv, ok := s.args.([2]interface{}); ok == true { obj, err = get_range(obj, argsv[0], argsv[1])