Skip to content

Commit 2cac668

Browse files
JeanMertzbuger
authored andcommitted
Correctly handle space-comma case in Delete
1 parent 521e3e7 commit 2cac668

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

parser.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -648,6 +648,8 @@ func Delete(data []byte, keys ...string) []byte {
648648

649649
if data[endOffset+tokEnd] == ","[0] {
650650
endOffset += tokEnd + 1
651+
} else if data[endOffset+tokEnd] == " "[0] && len(data) > endOffset+tokEnd+1 && data[endOffset+tokEnd+1] == ","[0] {
652+
endOffset += tokEnd + 2
651653
} else if data[endOffset+tokEnd] == "}"[0] && data[tokStart] == ","[0] {
652654
keyOffset = tokStart
653655
}

parser_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,18 @@ var deleteTests = []DeleteTest{
173173
path: []string{"b"},
174174
data: `{"a": "1"}`,
175175
},
176+
{
177+
desc: "Correctly delete first element with space-comma",
178+
json: `{"a": "1" ,"b": "2" }`,
179+
path: []string{"a"},
180+
data: `{"b": "2" }`,
181+
},
182+
{
183+
desc: "Correctly delete middle element with space-comma",
184+
json: `{"a": "1" ,"b": "2" , "c": 3}`,
185+
path: []string{"b"},
186+
data: `{"a": "1" , "c": 3}`,
187+
},
176188
}
177189

178190
var setTests = []SetTest{

0 commit comments

Comments
 (0)