新開發。我正在嘗試 grep JSON 檔案中的值。有人可以幫助我嗎?
[{
"State": "New York",
"City": "Queens",
"Cars": {
"gas": {
"USAMade": {
"Ford": ["Fordcars", "Fordtrucks", "Fordsuv"]
},
"OutsideUS": {
"Toyota": ["Tcars", "Ttrucks", "TSUV"]
}
},
"electric": {
"USAMade": {
"Tesla": ["model3", "modelS", "modelX"]
},
"OutsideUS": {
"Nissan": ["Ncars", "Ntrucks", "NSUV"]
}
}
}
},
{
"State": "Atlanta",
"City": "Roswell",
"Cars": {
"gas": {
"USAMade": {
"Ford": ["Fordcars", "Fordtrucks", "Fordsuv"]
},
"OutsideUS": {
"Toyota": ["Tcars", "Ttrucks", "TSUV"]
}
},
"electric": {
"USAMade": {
"Tesla": ["model3", "modelS", "modelX"]
},
"OutsideUS": {
"Nissan": ["Ncars", "Ntrucks", "NSUV"]
}
}
}
}
]
- 如何列出汽車型別,如(汽油/電動)?
- 一旦我得到型別,我想列出各自的制造國家(USAmade/OutsideUS)。
- 之后我想列出模型(福特/豐田)?
uj5u.com熱心網友回復:
假設您在檔案 test.json 中有檔案,這里是如何使用 linux shell 工具 cat,jq,sort,uniq 進行 grep:
1) cat test.json | jq '.[] | .Cars | keys[] ' | sort | uniq
"electric"
"gas"
2) cat test.json | jq '.[] | .Cars[] | keys[] ' | sort | uniq
"OutsideUS"
"USAMade"
3) cat test.json | jq '.[] | .Cars[][] | keys[] ' | sort | uniq
"Ford"
"Nissan"
"Tesla"
"Toyota"
如果您的資料在 mongoDB 中,我建議您將這些不同的值保存在單獨集合中的單個檔案中,并在從此集合加載時填充前端頁面,檔案可能如下所示:
{
State:["Atlanta","Oregon"],
City:["New York" , "Tokio" , "Moskow"],
Location:["OutsideUS" ,"USAMade"],
Model:["Ford","Toyota","Nissan"]
}
您不需要在每次加載首頁時從資料庫中提取不同的值,因為它不是可擴展的解決方案,并且在某些時候它會成為性能瓶頸......
但是,如果您無論如何都希望它根據選擇僅從 mongoDB 獲取不同的鍵,則可以執行以下操作:
1.
mongos> db.test.aggregate([ {"$project":{"akv":{"$objectToArray":"$Cars"}}} ,{$unwind:"$akv"} ,{ $group:{_id:null , "allkeys":{$addToSet:"$akv.k"} } }] ).pretty()
{ "_id" : null, "allkeys" : [ "gas", "electric" ] }
mongos> db.test.aggregate([ {"$project":{"akv":{"$objectToArray":"$Cars.gas"}}} ,{$unwind:"$akv"} ,{ $group: {_id:null , "allkeys":{$addToSet:"$akv.k"} } }] ).pretty() { "_id" : null, "allkeys" : [ "USAMade", "OutsideUS" ] }
mongos> db.test.aggregate([ {"$project":{"akv":{"$objectToArray":"$Cars.gas.USAMade"}}} ,{$unwind:"$akv"} ,{ $group:{_id:null , "allkeys":{$addToSet:"$akv.k"} } }] ).pretty()
{ "_id" : null, "allkeys" : [ "Ford" ] }
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/367351.html
