【发布时间】:2016-12-11 07:09:04
【问题描述】:
我有 3 个 json 文件:
- sources.json
- destination_level1.json
- destination_level0.json(最终文件)
我想通过替换匹配的字符串来“合并”所有这些文件,例如
destination_level0 -> destination_level1 -> 来源
用词:“检查destination_level0中的键,例如“Element1”,转到destination_level1并查找匹配的对象并将destination_level0中的Element1替换为该对象。”从destination_level1 到源也是如此。
来源可能如下所示:
{"john": ["A","B"],"mike": ["123","234","345"],"doe": ["abc","cde"],"ann": {"abc": ["yxc","xcv","cvb"],"bcd": ["poi","iuz","uzt"]}}
destination_level_1 像这样:
{"Element1": ["john","ann","john","john","doe","mike"],"Element2": ["ann","mike","ann","doe","doe","doe","ann"],"Element3": ["ann","doe","ann"]}
destination_level_0 像这样:
{"FinalA": ["Element1","Element2","Element1","Element2","Element2"],"FinalB": ["Element2","Element2","Element2","Element1"]}
最终的结果应该是这样的:
{"FinalA": [[["A","B"],{"abc": ["yxc","xcv","cvb"],"bcd": ["poi","iuz","uzt"]},...
我尝试了一些 lodash 和下划线,但卡住了。
有什么想法吗?
【问题讨论】:
-
element2从何而来? finalB从哪里来?关系不清楚!
-
element2 在destination_level0.json 中手动定义。 finalB 也一样。 element2 应替换为 destination_level_1 中 element2 的对象。 finalB 不需要替换,因为这是我们将使用的最终“密钥”。我希望澄清一下?
标签: javascript json node.js underscore.js lodash