Josh Baker
458c2c85b8
reorg imports
2017-04-04 10:46:00 -07:00
Josh Baker
e0cd4f26a8
proper emoji decoding, fixed #23
2017-04-04 10:42:36 -07:00
Josh Baker
e8d1a9ab93
end of path regression, fixes #21
...
thanks @Poorva17
2017-03-29 08:19:50 -07:00
Josh Baker
9944282cf6
updated comments
2017-03-29 08:18:26 -07:00
Josh Baker
256887a8aa
Fix for invalid matching on prefixed key
...
Thanks to @Poorva17 for finding this issue.
Fixes #20
2017-03-28 17:04:10 -07:00
Josh Baker
09d1c5c5bc
added gjson-safe comment
2017-02-05 09:10:42 -07:00
Josh Baker
b0e589ad0b
index for iterator vals
2016-12-08 15:00:05 -07:00
Josh Baker
456225d161
key index for ForEach
2016-12-07 16:37:33 -07:00
Josh Baker
c1e65a498d
added ParseBytes
2016-12-02 11:59:39 -07:00
Josh Baker
7afd24f7a2
added != comparison operator
2016-11-30 14:38:08 -07:00
Josh Baker
90669a0cbe
query matching with %
2016-11-30 14:32:17 -07:00
Josh Baker
62892351c5
added ForEach function
2016-11-30 10:50:59 -07:00
Josh Baker
86b1b630e4
Query array for multiple matches
...
It's now possible to query an array for multiple matches by adding the
'#' character immediately following the query.
For example, using the following JSON:
{
"friends": [
{"first": "Dale", "last": "Murphy"},
{"first": "Roger", "last": "Craig"},
{"first": "Jane", "last": "Murphy"}
]
}
To return the first match:
`friends.#[last="Murphy"].first` >> "Dale"
To return all matches:
`friends.#[last="Murphy"]#.first` >> ["Dale","Jane"]
Thanks to @chuttam for requesting this feature, closes #15 .
2016-11-30 07:59:24 -07:00
Josh Baker
1303e83611
fix lead comma error
2016-11-29 18:08:02 -07:00
Josh Baker
ae5d307631
Added GetMany. Query many paths at once.
...
The `GetMany(json, paths...)` function can be used to get multiple
values at one time from the same json string.
This is preferrable to calling `Get(json, path)` over and over.
It's also optimized to scan over a JSON payload once.
This addresses a feature request by @FZambia, and closes #13 .
2016-11-28 15:10:11 -07:00
Josh Baker
ac4cd1ab55
empty arrays for non-existent values #11
2016-11-02 13:45:25 -07:00
William Poussier
495633298f
Modify behavior of Array() on non-array result.
...
Closes #10 .
2016-11-02 20:20:24 +01:00
Josh Baker
a02d704254
added result.Uint() function resolves #9
2016-11-02 08:24:13 -07:00
Josh Baker
27c108f475
fuzzing test on parse
2016-10-18 17:13:15 -07:00
Josh Baker
800ce5e927
added Index field
2016-10-17 17:39:27 -07:00
Josh Baker
2dec1c4e7b
safe slices
2016-09-09 15:49:48 -07:00
Josh Baker
7c631e9868
fix out of range error
2016-09-08 09:02:40 -07:00
Josh Baker
b39aa6075f
bytes substring optimization
2016-09-08 08:34:01 -07:00
Josh Baker
124a25db9e
added direct bytes interface
2016-09-08 08:08:53 -07:00
Josh Baker
f40fe4ac37
subquery syntax
2016-08-31 13:23:20 -07:00
Josh Baker
4d7d1a76a8
import match package
2016-08-30 07:21:20 -07:00
Josh Baker
3913125ac5
faster map unmarshalling
2016-08-25 20:17:32 -07:00
Josh Baker
a6e9688393
lessen frequency of assignments in path routine
2016-08-25 10:05:03 -07:00
Josh Baker
81391efb66
minor optz
2016-08-25 09:40:50 -07:00
Josh Baker
19f9404e51
Updated logic for better ssa compilation in Go 1.7
2016-08-25 07:22:48 -07:00
Josh Baker
ffbbc90c13
remove commented code
2016-08-24 13:35:10 -07:00
Josh Baker
4fceff029c
unicode patterns
2016-08-24 13:26:44 -07:00
Josh Baker
67e38154bd
sped up map[string]interface{} unmarshalling
2016-08-24 12:12:07 -07:00
Josh Baker
16ecfe5970
addtional test
2016-08-22 08:25:33 -07:00
Josh Baker
696d68fd62
minor optimizations
2016-08-22 07:39:41 -07:00
Josh Baker
cd422a3e10
Removed Multi. Added Parse and result.Get funcs
...
The Multi field was too bulky. fixes #4
Added a Parse(json) function that will do a simple parse of json.
Added a result.Get(path) function that returns a child result.
Added Bool(), Int(), and Float() to result type. fixes #5
2016-08-22 06:05:51 -07:00
Josh Baker
29fecf859f
minor performance optz
2016-08-21 10:10:55 -07:00
Josh Baker
cec0cb946f
small bump in performance
2016-08-21 07:17:11 -07:00
Josh Baker
0757a4d1e7
get nested array values, fixes #4
...
To get all the friends last names use:
"friends.#.last"
{
"friends": [
{"first": "James", "last": "Murphy"},
{"first": "Roger", "last": "Craig"}
]
}
2016-08-21 06:57:13 -07:00
Josh Baker
260ef19a2e
fix path issue
2016-08-21 05:35:33 -07:00
Josh Baker
1b1f52024e
minor optimization
2016-08-21 05:32:34 -07:00
Josh Baker
3a4fec0606
added more comments and a couple minor optimizations
2016-08-19 13:51:52 -07:00
Josh Baker
0e6e567424
optimistic optimizations
2016-08-19 11:22:59 -07:00
Josh Baker
a721b7ad07
minor optimizations
2016-08-18 07:18:24 -07:00
Josh Baker
8be3ed7605
reset count on append, fixes #3
2016-08-15 04:56:55 -07:00
Josh Baker
a93ef25a70
fixed exists check
2016-08-12 08:51:56 -07:00
Josh Baker
725f3caa55
exists function
2016-08-12 08:39:08 -07:00
Josh Baker
1e941a433e
added path escaping
2016-08-11 18:51:29 -07:00
Josh Baker
a4005bcf0f
added stack frame. faster
2016-08-11 10:39:38 -07:00
Josh Baker
f4afb106da
first commit
2016-08-11 07:50:34 -07:00