Skip to content

Commit d3f17d3

Browse files
committed
Correct offset for object key
1 parent cdfe8d8 commit d3f17d3

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

pointer.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,7 @@ func (p *Pointer) Offset(document string) (int64, error) {
398398

399399
func offsetSingleObject(dec *json.Decoder, decodedToken string) (int64, error) {
400400
for dec.More() {
401+
offset := dec.InputOffset()
401402
tk, err := dec.Token()
402403
if err != nil {
403404
return 0, err
@@ -416,7 +417,7 @@ func offsetSingleObject(dec *json.Decoder, decodedToken string) (int64, error) {
416417
}
417418
case string:
418419
if tk == decodedToken {
419-
return dec.InputOffset(), nil
420+
return offset, nil
420421
}
421422
default:
422423
return 0, fmt.Errorf("invalid token %#v", tk)

pointer_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -608,13 +608,13 @@ func TestOffset(t *testing.T) {
608608
name: "object key",
609609
ptr: "/foo/bar",
610610
input: `{"foo": {"bar": 21}}`,
611-
offset: 14,
611+
offset: 9,
612612
},
613613
{
614614
name: "complex object key",
615615
ptr: "/paths/~1p~1{}/get",
616616
input: `{"paths": {"foo": {"bar": 123, "baz": {}}, "/p/{}": {"get": {}}}}`,
617-
offset: 58,
617+
offset: 53,
618618
},
619619
{
620620
name: "array index",

0 commit comments

Comments
 (0)