各位大大好,小的在做專案時遇到一個狀況,想了挺久也查了挺久不知道怎麼解
我要弄一個讀既有系統的資料做分析的工具,
同時for不同的系統使用,然後資料格式竟然不一樣
例如像這樣
系統a的資料:
{
"ip": "192.168.0.0",
"home1": {
"eqid": "OOOOO",
"room1": {
"item": "aaa"
},
"room2": {
"item": "bbb"
}
},
"home2": {
"eqid": "XXXXX",
"room1": {
"item": "ccc"
},
"room2": {
"item": "ddd"
}
}
}
系統b的資料:
{
"ip": "192.168.0.0",
"homes": {
"1": {
"eqid": "OOOOO",
"rooms": {
"1": {
"item":"aaa"
},
"2": {
"item":"bbb"
}
}
},
"2": {
"eqid": "XXXXX",
"rooms": {
"1": {
"item":"ccc"
},
"2": {
"item":"ddd"
}
}
}
}
}
兩種資料存的key一樣,但格式就不同
我想把資料都拉出來自己重新整理成統一格式
所以想請問JS有沒有哪個函式可以做到
對一個物件內的所有層級做搜尋,有符合的key值就返回value
這種事情
或是除了改原始資料格式外,有甚麼其他辦法可解我的困境嗎
感謝各位大大
找到一篇可以搜尋所有層級的解法,供參考
How to search through multi layers nested objects by keys in js
一般來說,我還是建議最好從原始格式就改良。
但如果沒辦法的話。(如多方來源)
那你也只能寫格式轉換處理了。
你這如果沒有統一規則的話。
我還是會建議您直接跑迴圈判斷處理會比較好。
或是善用 Object.keys 及 Object.values 這兩組特性。
再搭配 map 來處理。
畢竟我不清楚你的規則,沒辦法直接寫給你。只能給你建議的方式。