您好,亲爱的stackoverflow社区,
我想做一个电子应用程序[Javascript而不是jQuary](或者正在这样做的过程中),并希望添加一个功能,把一个配置到另一个的“格式”。
这个大文件,我想从中获取我当前通过“dialog.showOpenDialog”读入的信息,并且还可以访问json对象。
现在问题来了
我通过对话框获得的文件有8000行长,其中包含我想打包到一个约3000行的小文档中的个人信息。重要:个别信息具有不同的名称,例如I want“ABCD:23”,另一个文件中为EFG:23.
我已经问过这个问题了,并且从一个用户click here(https://stackoverflow.com/a/73061526/17389880)那里得到了一个很好的答案,这个答案也很好用,但是我现在已经复制和粘贴了这个函数好几次了(如下例中的for函数)
这当然不是英语人的好方法...有没有办法让这个更紧凑?
BigCFG.json:
"ANIMALS"{
"DOG": {
"DOG1": "0" ,
"DOG2": "1" ,
"BREED": {
"breed": "1",
"breed": "2",
},
},
"CAT": {
"CAT1": "0",
"CAT2": "1" ,
"BREED": {
"breed": "1",
"breed": "2",
},
},
}
数据表:
let dogTable = {
'dog1':'dog2',
'dog3': 'dog4'
}
let dogbreedTable = {
'breed1':'breed2',
'breed3': 'breed4'
}
let catTable = {
'cat1':'cat2',
'cat3': 'cat4'
}
let catbreedTable = {
'breed1':'breed2',
'breed3': 'breed4'
}
for函数,我想有更紧凑:(我有目前约40次在我的项目在一行测试)
for (let bigKey in BigCFG.ANIMALS.DOG) {
if (bigKey in dogTable) {
smallCFG.ANIMALS.DOG[dogTable[bigKey]] = BigCFG.ANIMALS.DOG[bigKey]
}
for (let bigKey in BigCFG.ANIMALS.DOG.BREED) {
if (bigKey in dogbreedTable) {
smallCFG.ANIMALS.DOG.BREED[dogbreedTable[bigKey]] = BigCFG.ANIMALS.DOG.BREED[bigKey]
}
for (let bigKey in BigCFG.CAT) {
if (bigKey in catTable) {
smallCFG.ANIMALS.CAT[catTable[bigKey]] = BigCFG.ANIMALS.CAT[bigKey]
}
for (let bigKey in BigCFG.ANIMALS.CAT.BREED) {
if (bigKey in catbreedTable) {
smallCFG.ANIMALS.CAT.BREED[catbreedTable[bigKey]] = BigCFG.ANIMALS.CAT.BREED[bigKey]
}
必须是smallCFG.json:
"ANIMALS": {
"CAT": {
"cat": "3",
"cat": "4",
"BREED": {
"breed": "2",
"breed": "3",
},
},
"DOG": {
"dog": "3",
"dog": "4",
"BREED": {
"breed": "3",
"breed": "4",
},
}
}
我将非常感谢你的帮助,当然也感谢你的时间
1条答案
按热度按时间eqzww0vc1#
我不确定我是否完全理解了你的问题和约束。我从你的其他问题中得到的是你需要将一个json文档从一个结构转换到另一个结构,对吗?你试过JSONata吗?也许它符合你的要求。
附言:我试着把这句话加到评论里,但是我的名声不够好