我在一個檔案中有以下 json,我想從中獲取所有價格物件的“id”并放入一個陣列變數中。
{
"documentType": "Prices",
"fullCharges": [
{
"ResourceId": null,
"price": {
"href": null,
"id": "8ddaaabc92bc"
},
"product": {
"href": null,
"id": "123"
}
},
{
"price": {
"href": null,
"id": "326f0f273258"
},
"product": {
"href": null,
"id": "123"
}
}
],
"createdBy": "test",
"createdOn": "2021-10-05T00:00:55Z",
"currentSeqNum": 2
}
我正在使用以下查詢,但結果以正確的方式出現。
priceIds=$(jq -r .fullCharges[].price.id ${file})
使用上面的命令,它的行為就像一個單一的值,而不是陣列。如果我列印 priceId 值,它只顯示最后一個值。
326f0f273258 instead of 8ddaaabc92bc 326f0f273258
當我回圈遍歷它時,它再次表現為單個值。
for price in "${priceIds[@]}"
do
printf "$price"
cbq -u Administrator -p Administrator -e "http://localhost:8093" --script="select * FROM \`com.src.test.price\` where docId==\"$price\";"
done
上述回圈的輸出命令: select * FROM `com.src.test.price` where documentId=="8ddaaabc92bc 326f0f273258";
應該有 2 個這樣的命令
select * FROM `com.src.test.price` where documentId=="8ddaaabc92bc"
select * FROM `com.src.test.price` where documentId=="326f0f273258"
uj5u.com熱心網友回復:
- 使用額外的括號,它幫助我創建陣列。
- 在陣列項變數上使用以下 sed 命令,我能夠從中洗掉多余的行。
price=$(echo "$price" | sed 's/^[ \n]*//;s/[ \n]*$//')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/387463.html
上一篇:洗掉空檔案-提高邏輯性能
下一篇:PHP從嵌套陣列中獲取值
