2015-05-21 7 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 могут быть проанализированы только строки» –

Смежные вопросы