2015-05-21 61 views
0

我正在拖拽一些日志,并且能够更容易地阅读它们,我使用jq(http://stedolan.github.io/jq/),但是它缺少一些东西,或者我不知道该怎么做我需要去做。日志中的嵌套字符串化json的漂亮打印

所以所有的线条都JSON,目前我在做:

tail -f /path/to/log | jq . 

问题是,有时候,我有这样的东西(登录HTTP响应时):

{ 
    "foo": "bar", 
    "fi": "bo", 
    "stream": "{\n \"json\": \"asAString\"\n}" 
} 

而且很明显,想结束这样的事情:

{ 
    "foo": "bar", 
    "fi": "bo", 
    "stream": { 
    "json": "asAString" 
    } 
} 

虽然我们可以在第一次假设我知道这个字段的具体名称需要以特定方式处理,如果您有自动的方式来执行此操作:-)

谢谢!

回答

1

这不是一个嵌套对象...它是一个json字符串。它已经很好打印了。如果这是你想要的,你需要解析字符串。

.stream |= fromjson 
+0

完美!我找不到>< 我实际上最终做了'jq'。 | .stream | = fromjson'',显然它符合我的需求! –

+0

额外''。 |'是不必要的,它什么都不做。 –

+0

好吧,它为我做。如果我没有,我会得到这个:“jq:error:null只能解析字符串” –