jsonファイルがあり、その上に新しいオブジェクト配列を追加したいと思います。私はjqコマンドラインを使用しようとしています。私はインターネットを見ていたので、このコマンドはJsonファイルのクエリオブジェクトだけでなく、これを行うことです。しかし、私はどのようにjqのADDコマンドを使用するのか分かりません。 私のJSONファイルは、レポート-2017-01-07.jsonです>>jqを使用して既存のJSON配列に新しい要素を追加
{
"report":"1.0",
"data":{
"date":"2010-01-07",
"messages":[
{
"date":"2010-01-07T19:58:42.949Z",
"xml":"xml_samplesheet_2017_01_07_run_09.xml",
"status":"OK",
"message":"metadata loaded into iRODS successfully"
},
{
"date":"2010-01-07T20:22:46.949Z",
"xml":"xml_samplesheet_2017_01_07_run_09.xml",
"status":"NOK",
"message":"metadata duplicated into iRODS"
},
{
"date":"2010-01-07T22:11:55.949Z",
"xml":"xml_samplesheet_2017_01_07_run_09.xml",
"status":"NOK",
"message":"metadata was not validated by XSD schema"
}
]
}
}
私は、以下のコマンドを使用しています>>
$ cat report-2017-01-07.json | jq -s '.data.messages {"date": "2010-01-07T19:55:99.999Z", "xml": "xml_samplesheet_2017_01_07_run_09.xml", "status": "OKKK", "message": "metadata loaded into iRODS successfullyyyyy"}'
jq: error: syntax error, unexpected '{', expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
.data.messages {"date": "2010-01-07T19:55:99.999Z", "xml": "xml_samplesheet_2017_01_07_run_09.xml", "status": "OKKK", "message": "metadata loaded into iRODS successfullyyyyy"}
jq: 1 compile error
私はすでに別のコマンドの組み合わせを試してみましたが、私はいつもで終わるのですエラーコンパイル。それについてのヒント? ありがとう!
出力がどのように見える必要があります>>
{
"report": "1.0",
"data": {
"date": "2010-01-07",
"messages": [{
"date": "2010-01-07T19:58:42.949Z",
"xml": "xml_samplesheet_2017_01_07_run_09.xml",
"status": "OK",
"message": "metadata loaded into iRODS successfully"
}, {
"date": "2010-01-07T20:22:46.949Z",
"xml": "xml_samplesheet_2017_01_07_run_09.xml",
"status": "NOK",
"message": "metadata duplicated into iRODS"
}, {
"date": "2010-01-07T22:11:55.949Z",
"xml": "xml_samplesheet_2017_01_07_run_09.xml",
"status": "NOK",
"message": "metadata was not validated by XSD schema"
}, {
"date": "2010-01-07T19:55:99.999Z",
"xml": "xml_samplesheet_2017_01_07_run_09.xml",
"status": "OKKKKKKK",
"message": "metadata loaded into iRODS successfullyyyyy"
}]
}
}
は、このよくわからないが、それはarrrayある.data.messages問題ではないのですか?あなたは.data.messagesのようなものが必要です。[] –
申し訳ありませんが、うまくいきませんでした。 –
Ok - ドキュメントを読んでjqをインストールしてみました。 Windowsシェルには、ストリームに二重引用符を供給してjqを移動する方法に問題があるようです。あなたの質問には何の答えもありませんが、jqコマンドで二重引用符をエスケープすることをお勧めします。だから '' date ''は' \ "date \" 'となります。 –