我有兩個 json,它們是共享相同密鑰的物件串列,我正在嘗試使用 jq 將它們組合成一個 json。預期的輸出是單個 json,其中包含串列形式的組合物件串列。例如:
json 1:
[
{"Id":"1", "FirstName":"firstName1", "LastName":"lastName1"},
{"Id":"2", "FirstName":"firstName2", "LastName":"lastName2"},
{"Id":"3", "FirstName":"firstName2", "LastName":"lastName3"}
]
json 2:
[
{"School":"School1", "Id":"1", "Degree":"Degree1"},
{"School":"School2", "Id":"2", "Degree":"Degree2"},
{"School":"School3", "Id":"3", "Degree":"Degree3"}
]
基于Id的組合Json
[
{"Id":"1", "FirstName":"firstName1", "LastName":"lastName1",
"School":"School1", "Degree":"Degree1"},
{"Id":"2", "FirstName":"firstName2", "LastName":"lastName2",
"School":"School2", "Degree":"Degree2"},
{"Id":"3", "FirstName":"firstName2", "LastName":"lastName3",
"School":"School3", "Degree":"Degree3"}
]
我已經嘗試了幾種方法來合并我在這個執行緒中找到的這些 json,例如:
jq -s '.[0] * .[1]' file1 file2
我仍然是 jq 的新手,所以任何幫助將不勝感激!
uj5u.com熱心網友回復:
使用SQL 風格的運算子 JOIN和INDEX
jq 'JOIN(INDEX(inputs[];.Id);.[];.Id;add)' json1 json2
[
{
"Id": "1",
"FirstName": "firstName1",
"LastName": "lastName1",
"School": "School1",
"Degree": "Degree1"
},
{
"Id": "2",
"FirstName": "firstName2",
"LastName": "lastName2",
"School": "School2",
"Degree": "Degree2"
},
{
"Id": "3",
"FirstName": "firstName2",
"LastName": "lastName3",
"School": "School3",
"Degree": "Degree3"
}
]
演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/446383.html
