javascript - 如何将多个对象串行推入一个对象
问题描述
我在一个变量中有 2 个或多个对象,我想将这些对象推送到一个对象中。
let a = {"device_type":"iphone","filter_data":{"title":{"value":"Lorem Ipsum..","data":{}},"message":{"value":"Lorem Ipsum is simply dummy text of the printing...","data":{}},"dismiss_button":{"value":"Ok","data":{}},"action_url":{"value":"","data":{"type":"custom"}}}}
{"device_type":"iphone","filter_data":{"message":{"value":"Push Message goes here.","data":{}}}}
我希望输出为:
{
"0": {
"device_type": "iphone",
"filter_data": {
"title": {
"value": "Lorem Ipsum..",
"data": {}
},
"message": {
"value": "Lorem Ipsum is simply dummy text of the printing...",
"data": {}
},
"dismiss_button": {
"value": "Ok",
"data": {}
},
"action_url": {
"value": "",
"data": {
"type": "custom"
}
}
}
},
"1": {
"device_type": "iphone",
"filter_data": {
"message": {
"value": "Push Message goes here.",
"data": {}
}
}
}
}
我怎样才能做到这一点?
解决方案
您可以}{
用 a替换},{
,解析它并Object.assign
从数组中获取具有索引作为属性的对象。
const
data = '{"device_type":"iphone","filter_data":{"title":{"value":"Lorem Ipsum..","data":{}},"message":{"value":"Lorem Ipsum is simply dummy text of the printing...","data":{}},"dismiss_button":{"value":"Ok","data":{}},"action_url":{"value":"","data":{"type":"custom"}}}}{"device_type":"iphone","filter_data":{"message":{"value":"Push Message goes here.","data":{}}}}';
result = Object.assign({}, JSON.parse(`[${data.replace(/\}\{/g, '},{')}]`));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: auto; }
推荐阅读
- sql - Snowflake vs Snowflake Preview App 以及将 Snowflake 与 Power BI 结合使用的其他一般说明
- fluentui-react - Fluent UI Northstar 访问主题变量
- reactjs - Antd表格输入字段如何按行列设置唯一id?
- html - 为什么菜单不移到中心?
- python - AWS Lambda shutil.move 文件到 /tmp 目录
- nonlinear-functions - 在 Python 中求解非线性方程
- c# - 会话变量问题
- regex - 如何在 RegEx 中表示句子的开头和结尾(不是一行)?
- reactjs - Gatsby Cloud - 构建失败:WebpackError: /usr/src/app/www/public/render-page.js:4464
- coldfusion - Coldfusion cfdirectory 仅在所有文件都相同时列出目录中的一些文件