我想將我的json對象拆分爲多個json數組。將json拆分爲多個窗口中的文件
{
"MusicCollection": [
{
"PutRequest": {
"Item": {
"Artist": {"S": "No One You Know"},
"SongTitle": {"S": "Call Me Today"},
"AlbumTitle": {"S": "Somewhat Famous"}
}
}
},
{
"PutRequest": {
"Item": {
"Artist": {"S": "Acme Band"},
"SongTitle": {"S": "Happy Day"},
"AlbumTitle": {"S": "Songs About Life"}
}
}
},
{
"PutRequest": {
"Item": {
"Artist": {"S": "No One You Know"},
"SongTitle": {"S": "Scared of My Shadow"},
"AlbumTitle": {"S": "Blue Sky Blues"}
}
}
}
]
}
下面的命令在linux下將文件分割成多個putRequest數組。
jq -cM --argjson sublen '2' 'range(0; length; $sublen) as $i | .[$i:$i+$sublen]' \
input.json | split -l 1 -da 3 - meta2_
參考: Split a JSON array into multiple files using command line tools
在命令提示符下直接運行如下命令給了我3個PUT請求。
jq ".MusicCollection[]" music.json
然而,當我在下面用於批處理腳本循環,它只是給我}
。
for /f "tokens=*" %%a in ('music.json') do (
jq ".MusicCollection[]" music.json
set array_value=%%a
)
echo Array: %array_value%
有人可以請指導我,我應該如何獲得與for循環相同的命令提示符輸出?
從您的問題中不清楚您希望得到什麼結果。你可以這樣做,以便更具體 - 根據你在這個問題中顯示的輸入文件顯示結果文件的內容(或者如果你想要它們中的每一個) – jsxt
I 'm不知道你到底在問什麼,但是...... windows命令提示符沒有變量的數組類型。那是你想要得到的嗎? –
@jsxt:我需要一個o/p在多個文件中。防爆。如果我定義的批量大小爲2,我應該在不同的文件中獲得如下所述的2個json對象。 文件1 {{MusicCollection}:[{「PutRequest」:{「Item」:{「Artist」:{「S」:「No One You Know」},「SongTitle」:{「S」我今天「),」AlbumTitle「:{」S「:」有點着名「}}}},{」PutRequest「:{」Item「:{」Artist「:{」S「:」Acme Band「},文件2:{「MusicReader」:{「S」:「Happy Day」},「AlbumTitle」:{「S」:「 :{「Item」:{「Artist」:{「S」:「No One You Know」},「SongTitle」:{「S」:「害怕我的影子」}「AlbumTitle」:{「S」 「Blue Sky Blues」}}}}]} – Dwarrior