node js:如果字符串中的变量名,则访问json?

时间:2017-09-24 06:58:37

标签: javascript json node.js variables

我有json对象如下

var data = { 
   datetime:{
     time:"9:30 AM",
     date:"24-09-2017"
   }
}

我有字符串var element = "data.datetime.time"如何使用元素访问时间。

3 个答案:

答案 0 :(得分:2)

Split字符串(点作为分隔符),并使用Array#reduce从对象中提取数据:

var data = { 
   datetime:{
     time:"9:30 AM",
     date:"24-09-2017"
   }
}

var element = "data.datetime.time";

var result = element.split('.').reduce(function(r, p) {
  return typeof r === 'object' ? r[p] : null; // if r is an object, return the prop value, if not return null
}, { data: data });

console.log(result);

答案 1 :(得分:0)

new Function(`return ${element}`)()

答案 2 :(得分:0)

我刚刚找到了答案..

我们可以使用eval()

var data = {    
      datetime:{
        time:"9:30 AM",
         date:"24-09-2017"    
      } 
   }

var element = "data.datetime.time";

console.log(eval(element));