-
Notifications
You must be signed in to change notification settings - Fork 886
Closed
Description
Using this JSON:
{
"name": {"first": "Tom", "last": "Anderson"},
"age":37,
"children": ["Sara","Alex","Jack"],
"fav.movie": "Deer Hunter",
"friends": [
{"first": "Dale", "last": "Murphy", "age": 44, "nets": ["ig", "fb", "tw"]},
{"first": "Roger", "last": "Craig", "age": 68, "nets": ["fb", "tw"]},
{"first": "Jane", "last": "Murphy", "age": 47, "nets": ["ig", "tw"]}
]
}
Normal Behavior
If I run gjson.Get(testJSON, "friends")
I'll get an array back of the friends. Ok all good.
If I run gjson.Get(testJSON, "friends.#")
I will get 4
back. Meaning that if I use .#
on the end of a path that is an array, I will get the count back.
Problem Behavior
If I run gjson.Get(testJSON, "friends.#(last==\"Murphy\")#")
I get an array back of size two and only with friends with the last name Murphy. All good, still works as expected.
HOWEVER, using the same .#
at the end of a path that leads to an array, I would expect to get back the count of that array, but I do not. So if I run gjson.Get(testJSON, "friends.#(last==\"Murphy\")#.#")
I actually get back an empty array []
.
I would expect to get the count of that array which should be 2
.
Metadata
Metadata
Assignees
Labels
No labels