From 922b012d22650c29a4d6bd49a7e5d3daba9eeaf7 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Mon, 20 Nov 2017 17:55:52 +0000 Subject: [PATCH] Fix bug where Result.Raw of literal 'false' was 'f' --- gjson.go | 2 +- gjson_test.go | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gjson.go b/gjson.go index c44ed15..e16a4b7 100644 --- a/gjson.go +++ b/gjson.go @@ -511,7 +511,7 @@ func tonum(json string) (raw string, num float64) { func tolit(json string) (raw string) { for i := 1; i < len(json); i++ { - if json[i] <= 'a' || json[i] >= 'z' { + if json[i] < 'a' || json[i] > 'z' { return json[:i] } } diff --git a/gjson_test.go b/gjson_test.go index 068e742..12cb244 100644 --- a/gjson_test.go +++ b/gjson_test.go @@ -1101,3 +1101,12 @@ func TestGetMany48(t *testing.T) { } } } + +func TestResultRawForLiteral(t *testing.T) { + for _, lit := range []string{"null", "true", "false"} { + result := Parse(lit) + if result.Raw != lit { + t.Fatalf("expected '%v', got '%v'", lit, result.Raw) + } + } +}