如何在NodeJs中合并和更新Json文档

时间:2019-04-29 19:09:28

标签: javascript node.js json

我有一个场景,我必须从后端获取json文档,一个是网格定义,另一个是用户的网格自定义文件。在我的情况下,用户可以进行修改,但不能进行修改。

某些元素具有默认值,用户可以覆盖这些默认值,其他则是可选的。在我的文档中,所有数据都存储在column文档数组中,每列都有唯一的ID。

我该如何使用grid_info列作为基础,然后如果user_grid_info的列键被该键的用户值覆盖,并且添加未在grid_info中设置的键/值并输出组合的列数组

{
        "id" :"D0842C42-D43F-426D-A12E-D0141FE58337",
        "_type" : "grid_info",

        "columns" :[
                {
                    "colId": "A3C031BA-C157-42D8-8208-9019B8B87061",
                    "headerName":"ID",
                    "field": "id",
                    "width" : 100,
                    "sortable": false               
                },
                {
                    "colId": "671B1BAA-2D2E-419D-9C74-182D9E87A502",
                    "headerName":"Name",
                    "field": "name",
                    "width" : 150,
                    "sortable": true                
                },
                {
                    "colId": "CCB26780-6474-4606-B9EA-750F80354599",
                    "headerName":"Zip Code",
                    "field": "zip",
                    "width" : 75,
                    "sortable": true                
                }


        ]
    }


    {
        "id" :"A40D39F1-0849-4C68-A506-6EC89DBD7163",
        "_type" : "user_grid_info",
        "grid_key" : "grid_info::D0842C42-D43F-426D-A12E-D0141FE58337",
        "user_id" : "3D10D638-39E1-40CD-A3A5-2B0D9AB51F1F",


        "columns" :[
                {
                    "colId": "A3C031BA-C157-42D8-8208-9019B8B87061",
                    "hide" : true,

                },
                {
                    "colId": "671B1BAA-2D2E-419D-9C74-182D9E87A502",
                    "position":1,

                    "width" : 200               
                },
                {
                    "colId": "CCB26780-6474-4606-B9EA-750F80354599",
                    "headerName":"Zip Code +4",
                    "position":2,
                    "width" : 100           
                }


        ]
    }

1 个答案:

答案 0 :(得分:0)

您可以立即合并对象以使用网格中的配置,例如:

let defaultConfiguration = { // your object from json with grid_info values }
let userConfiguration = { //your object from json with user grid info values }

所以只需创建一个合并变量

let merge = {... defaultConfiguration,... userConfiguration}

结果是defaultConfiguration的所有值,而userConfiguration的所有值都不同。