[
{ "id":"1",
"metadata":{"version":"1.0","author":"user1"}
},
{ "id":"2",
"metadata":{"version":"1.0","author":"user2","timestamp":"2019-02-05"}
},
{ "id":"3",
"metadata":{"version":"1.0","author":"user3","price":"10.0"}
}]
Я пытаюсь проанализировать вышеуказанный json (data1. json) с помощью jq, но мне не удается получить доступ к объекту метаданных. В конечном итоге я буду использовать объект метаданных для вставки в базу данных в виде строки. Может иметь любое количество полей, структура не фиксированная. Это сценарий, который я использую.
#!/usr/bin/env bash
id=($(jq '.[] | .id' data1.json | tr -d '"'))
metadata=($(jq '.[] | .metadata' data1.json))
n_id=${#id[@]}
n_meta=${#metadata[@]}
echo $n_id
echo $n_meta
for (( i=0; i<n_id; i++ )); do
echo ${metadata[$i]}
done
Ожидаемый результат:
{"version":"1.0","author":"user1"}
{"version":"1.0","author":"user2","timestamp":"2019-02-05"}
{"version":"1.0","author":"user3","price":"10.0"}
Что я здесь делаю не так? Любая помощь приветствуется.