3 ms·
"A good opportunity to introduce `gron` to those unfamiliar!" Thank you - appreciated. I haven't done much work with json but have had reasons recently to do
by rsync 5y ago
"A good opportunity to introduce `gron` to those unfamiliar!"
Thank you - appreciated.
I haven't done much work with json but have had reasons recently to do so - and I immediately saw how difficult it was to pipeline to grep ...
But what I still don't understand is that some json outputs I see have multiple values with the exact same name (!) and that still seems "un-grep-able" to me ...
What am I missing ?
- croon 5y agoThe json output likely contains multiple objects. Can you request more specifically the object(s) you need and grep on that?
- dmos62 5y agoYou might be missing a change in index: `obj[0].prop` vs `obj[1].prop`. Or, your JSON might have the same property defined multiple times: `{a:1, a:2}` (though I'm not sure how gron handles that situation).
- lvncelot 5y ago> (though I'm not sure how gron handles that situation). It seems both gron and jq only use the value that has been defined last: ~ echo '{"a":1,"a":2}' | gron json = {}; json.a = 2; ~ echo '{"a":1,"a":2}' | jq { "a": 2 }
- dotancohen 5y ago> But what I still don't understand is that some json > outputs I see have multiple values with the exact same name This is neither explicitly allowed nor explicitly forbidden by the JSON spec. It is implementation dependent upon how to handle - does one value override the other? Should they be treated as an array? In practice, this situation is usually carefully avoided by services that produce JSON. If you are interfacing with a service that does produce duplicate values, I'd be interested in seeing it for curiosity's sake. If you are writing a service and this is the output, then I implore you to reconsider!