blob: 35144db08e8172a937bd69a913cc91d5589c43db (
plain) (
tree)
|
|
[[!meta title="Traverse complex JSON structures with live feedback"]]
[[!meta copyright="Copyright © 2020 Zen Monk Alain M. Lafon"]]
Back to the [[schedule]]
Previous: <a href="/2020/schedule/24">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</a>
Next: <a href="/2020/schedule/39">NonGNU ELPA</a>
# Traverse complex JSON structures with live feedback
Sunday, Nov 29 2020, 11:12 AM - 11:22 AM
Zen Monk Alain M. Lafon
If you are working with complex nested JSON structures, you are
probably familiar with jq which is like sed for JSON data and great at
what it does. However, being a command-line tool like sed, the
feedback for writing queries and seeing their results is a discrete
process and not live.
When working with Emacs, we are used to good auto-completion and live
feedback. Formerly, this was mostly done with static input, but with
modern completion frameworks like Ivy and Counsel, this can be done
with dynamic inputs, as well.
counsel-jq is a package with which you can quickly test queries and
traverse a complex JSON structure whilst having live feedback. Just
call `M-x counsel-jq` in a buffer containing JSON, then start writing
your `jq` query string and see the output appear live in the message
area. Whenever you're happy, hit `RET` and the results will be
displayed to you in the buffer `*jq-json*`.
In this lightning talk, I'll give a quick overview on how to use
counsel-jq and how to build similar completion functionality.
Back to the [[schedule]]
Previous: <a href="/2020/schedule/24">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</a>
Next: <a href="/2020/schedule/39">NonGNU ELPA</a>
All times are approximate, and we might shuffle talks around as needed.
Please check <https://emacsconf.org/2020> a few days before the start of the
conference for instructions on how to watch and participate. See you then!
<!-- automatically generated from submissions.org using conf/generate-schedule-files --->
|