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 关注
- 75 浏览
添加回答
举报