我有一个json对象,看起来像下面这样:
{
"client":null,
"user":{
"email":"[email protected]",
"firstName":"Frank",
"lastName":"Palto",
"fullName":"Frank Palto",
"tags":[
"Ops",
"Dev"
],
"hasRegistered": true,
"url":""
},
"user.email":"[email protected]",
"user.firstName":"Joseph",
"user.lastName":"Enoc",
"user.mobileNumber":"0123451111"
}
我尝试将user对象与user之外的其他用户属性合并,以创建一个统一的user对象,如下所示:
{
"client":null,
"user":{
"email":"[email protected]",
"firstName":"Joseph",
"lastName":"Enoc",
"fullName":"Frank Palto",
"mobileNumber":"0123451111",
"tags":[
"Ops",
"Dev"
],
"hasRegistered": true,
"url":""
}
}
请注意合并以及user之外的字段如何被置于user之下,并且其值具有优先级。
基本上,我想实现这一点,没有一个预定义的模型。当收到JSON时,我们应该通过检测“www.example.com“来检测离群值user.email(以与mustache表达式相同的方式),然后执行合并。
我已经看过其他类似的解决方案,但它们完全不能提供更适合我的用例的东西:How to merge properties of an object in an object
我如何才能最好地实现这一点?任何帮助都非常感谢
1条答案
按热度按时间mutmk8jj1#
我认为最简单的解决方案是使用正则表达式解析键,然后使用产生的离群值使用括号符号重新分配给
user
属性。这里有一个函数,它一步一步地完成每个部分并记录结果(只是不要忘记也改变fullName
。我也把它添加到函数中)。下面是一个Codepen,它在你的JSON字符串上测试它:https://codepen.io/SonicBoomNFA/pen/gOZqgMq