我正在使用ElasticSearch进行第一步,并从命令行测试当前正在使用curl的东西。但是,这有点烦人,因为我必须在文本编辑器上键入所有内容,然后粘贴到控制台中(控制台中没有选项卡格式),并且得到的json输出未格式化。
因此,我想知道是否有许多与json数据配合使用的SQL控制台,以使其更易于测试和使用json rest网络服务。
您使用什么工具执行此类任务?
首先,如果您得到的json输出未格式化,请附加?pretty=1到任何url。结果将更好。python -m json.tool如果您使用的是Python 2.6+ ,则另一个选择是将输出通过管道传递到。我喜欢后一个选项,因为我将它保存到了一个shell函数中,并且可以| j在输出json的任何命令之后简单地键入。更短更通用。
?pretty=1
python -m json.tool
| j
对于发出curl命令,有两种选择。最通用的解决方案是使用整个命令创建一个shell脚本。例如:
curl -s localhost:9200/foo/_search -d' {"query": {"query_string": {"query":"foo*"}}}' | python -m json.tool
与其将其粘贴到文件中,不如将其粘贴在shell提示符下。然后只需调整源代码并根据需要运行它即可。
% sh query
对此的一种变化是使用Emacs。我使用它curl在缓冲区区域上运行,操纵结果等,shell-command-on- region或者在那M-|是一个不错的选择。因此,对于上述脚本,我可以发出M-| sh RET而不是切换到shell的命令。Vim允许您做类似的事情。
curl
shell-command-on- region
M-|
M-| sh RET
我还没有检查过这个,但是很多人似乎都喜欢elasticsearch-head。它是一个UI,可以发出查询并为您提供结构化的结果。 http://mobz.github.com/elasticsearch- head/
更新 :我最近注意到Perl的JSON模块附带了一个方便的命令行实用程序json_pp,该实用程序类似于Python的json.tool。如果安装,JSON::XS则还有一个(较快的)json_xs垃圾箱。
json_pp
json.tool
JSON::XS
json_xs