我已经执行了两个json文件的diff,输出是一个字符串数组,表示json树中的位置。
原始的json文件类似于:
{
'key': {
'key3': 'value'
},
'key1': {
'key2': 'value2'
}
'key5': {
'key4': 'value4'
}
}
差异的输出是:
[
'key.key3',
'key1.key2'
]
我能够遍历数组中的所有字符串:
(difference).forEach((k) => {
console.log(k);
})
如何使用上面forEach()
函数设置的字符串访问原始json文件中的值?我想要的东西就像我直接调用originalJSON.key1.key2会返回的东西,但它必须由上面函数中的字符串组成。
我已尝试originalJSON[k]
,但这只是返回undefined。
答案 0 :(得分:3)
您必须将'key.key3'
分为'key'
和'key3'
。
执行此操作的一种方法是'key.key3'.split(".")
,['key','key3']
然后您可以使用它们浏览原始对象:
(difference).forEach( k => {
var keys = k.split(".") // ['key','key3']
var val = originalJSON[keys[0]][keys[1]] // == originalJSON['key']['key3']
console.log(val); // 'value', 'value2', 'value4'
})