从控制台使用json和curl的工具

ope*_*sas 7 json curl elasticsearch

我正在使用ElasticSearch给我的第一步,并从命令行测试我正在使用curl的东西.然而,它有点烦人,因为我必须在文本编辑器中键入所有内容并粘贴到控制台中(控制台中没有选项卡格式),并且您获得的json输出未格式化.

所以我想知道是否有一些等效的许多sql控制台用于处理json数据,以便更容易测试和使用json rest web服务.

你用什么工具来完成这类任务?

dre*_*ewr 6

首先,如果您获得的json输出未格式化,请附加?pretty=1到任何URL.结果会更好.python -m json.tool如果你有Python 2.6+,另一个选择是输出到输出.我喜欢后一个选项,因为我将它保存到shell函数中,只需| j在输出json的任何命令后输入.更短更通用.

要发出curl命令,有几个选项.最通用的解决方案是使用整个命令创建shell脚本.例如:

curl -s localhost:9200/foo/_search -d'
  {"query":
     {"query_string":
        {"query":"foo*"}}}' | python -m json.tool
Run Code Online (Sandbox Code Playgroud)

而不是在shell提示符下粘贴它,而是将其保存在文件中.然后只需调整源代码并根据需要随时运行它.

% sh query
Run Code Online (Sandbox Code Playgroud)

对此的变体是使用Emacs.我用它来运行curl缓冲区域,操纵结果等,shell-command-on-region或者M-|是一个很好的选择.所以对于上面的脚本,我可以发出M-| sh RET而不是切换到shell.Vim允许你做类似的事情.

我没有检查过这个,但很多人似乎喜欢elasticsearch-head.它是一个用户界面,可以发出查询并为您提供结构化结果. http://mobz.github.com/elasticsearch-head/

更新:我最近注意到Perl的JSON模块附带了一个方便的命令行实用程序json_pp,该实用程序与Python类似json.tool.如果你安装JSON::XS那里还有一个(更快的)json_xs垃圾箱.