The pitfall is that JSON has
zero guarantees for how often line breaks do and don't occur, and is often used to represent hierarchical data. Grepping for 'key: foo', and some liberal use of
-A and
-B may find you what you're looking for, but
grep is simply the wrong tool for that job. (And how do you handle a key with newlines in it?)
jq [0] is the right tool, but jq's syntax is it's own, and is harder to use (unless you use it regularly).
[0] https://stedolan.github.io/jq/