Разбор .json в Bash

Чтобы правильно определить отступ в структурированном текстовом формате, команда fileдолжна реализовать соответствующий синтаксический анализатор для этого формата. Появление последовательности символов\n␣(новой строки, за которой следует пробел ), недостаточно для того, чтобы сказать, что файл имеет отступ в виде пробелов, поскольку эта последовательность символов может встречаться внутри XML-атрибута.

Я не думаю, что литеральные табуляции могут встречаться незакодированными в XML-атрибутах, но я не уверен насчет разделов CDATA.

1
16.06.2020, 18:18
1 ответ

На самом деле сначала нужно отфильтровать .episodes, затем внутренний массив

 jq ".episodes |.[0]" jsonfile
{
  "title": "Hired and Fired by Little Richard and Jimi’s first trip on LSD",
  "url": "https://www.podtrac.com/pts/redirect.mp3/chtbl.com/track/5899E/traffic.megaphone.fm/HSW2392375869.mp3",
  "downloaded": true,
  "listened": false,
  "published": 1582203660
}

название:

jq ".episodes|.[0].title" jsonfile
"Hired and Fired by Little Richard and Jimi’s first trip on LSD"

опубликовано:

jq ".episodes|.[0].published" jsonfile
1582203660

Для запроса на основе значения url

jq '.episodes |.[] | select(.url=="https://www.podtrac.com/pts/redirect.mp3/chtbl.com/track/5899E/traffic.megaphone.fm/HSW2392375869.mp3").title' jsonfile    
"Hired and Fired by Little Richard and Jimi’s first trip on LSD"    

jq '.episodes |.[] | select(.url=="https://www.podtrac.com/pts/redirect.mp3/chtbl.com/track/5899E/traffic.megaphone.fm/HSW2392375869.mp3").published' jsonfile
1582203660
3
18.03.2021, 23:27

Теги

Похожие вопросы