1 回答

TA貢獻2080條經驗 獲得超4個贊
看起來上面的數據有一個預定義的模式。因此,需要注意模式定義的每個語法。但作為起點,您可以使用以下代碼。
var obj = {
"encoding_version" : 1,
"root" : {
"_type" : "lookup_config_data",
"Class" : ".key.LookData",
"Tbl" : {
"_type" : "lookup_table",
"Class" : ".key.LookupTable",
"Lhs" : { "_type" : "array<variant>", "_data" : [
".key.test1",
".key.test2",
".key.test3",
".key.test4",
".key.test5"
] },
"Groups" : { "_type" : "array<array<key>>", "_data" : [
{ "_type" : "array<key>", "_data" : [
".key.data1",
".key.data12"
] },
{ "_type" : "array<key>", "_data" : [
".key.data2"
] },
{ "_type" : "array<key>", "_data" : [
".key.data3"
] },
{ "_type" : "array<key>", "_data" : [
".key.data4"
] },
{ "_type" : "array<key>", "_data" : [
".key.data5"
] }
] }
}
}
};
var newObj = {};
var keys = obj.root.Tbl.Lhs._data;
var values = obj.root.Tbl.Groups._data;
if (keys.length == values.length){
keys.forEach((e,i)=>{
newObj[extractData(e)] = values[i]._data.map(v=>extractData(v));
})
}
function extractData(raw){
return raw.split('.')[2];
}
console.log(newObj);
這將是鍵到值newObj的映射。LhsGroups
- 1 回答
- 0 關注
- 105 瀏覽
添加回答
舉報