终端:CURL |走到JsonPath | prettyprint JSON

时间:2011-04-17 13:46:26

标签: shell json

我正在寻找在shell上打印部分返回的JSON文档的可能性。

现在,我正在将来自cURL的HTTP响应传递给python,以便将其打印出来:

curl -vX GET http://foo.bar | python -mjson.tool

但是现在我想知道如何实际“走”到一个子阵列的路径?

例如,返回的JSON数据:

{
"value1": true,
"value2": {
            "subvalue1": "foo",
            "subvalue2": "bar"
          }
}

我怎么才能在这个例子中打印子阵列?

1 个答案:

答案 0 :(得分:2)

几个月前,特里·琼斯写了一个很好的工具。这是他关于它的博客文章http://blogs.fluidinfo.com/terry/2010/11/25/jsongrep-py-python-for-extracting-pieces-of-json-objects/

基本上,对于您的示例,您将运行

curl -vX GET http://foo.bar | jsongrep.py value2

顺便说一下,我不认为你的例子实际上是有效的JSON。子阵列(实际上是JSON术语中的子对象)应该只是

{
   "subvalue1": "foo",
   "subvalue2": "bar"
}