如何解析一个多层次对象的键中包含点(.)的对象



如何解析一个多层次对象的键中包含点(.)的对象?

示例:

{
    "data.firstName": "John",
    "data.lastName": "Doe",
    "data.email": "example@example.org"
}

预期结果:

{
    data: {
        firstName: "John",
        lastName: "Doe",
        email: "example@example.org"
    }
}

附言:你可以在MongoDB的find查询中找到这样的集合,但我找不到它是如何做到的,所以这个问题来了。

您可以执行以下操作:

var data = {
    "data.firstName": "John",
    "data.lastName": "Doe",
    "data.email": "example@example.org"
}
var result = {};  
Object.keys(data).forEach(function (key) {
  var value = data[key]; 
  var keyParent = key.split(".")[0]; 
  var keyChild = key.split(".")[1]; 
  if(!result[keyParent]){
    result[keyParent] = {};
  }
  result[keyParent][keyChild] = value;
});

结果对象将与您正在查找的结果类似。

相关内容

最新更新