JSON:键和字段名称:动态解析

JSON: Keys and Field Names: Dynamically Parse

我有一个 JSON 字符串

    {"key": "2021-01-01 22:59:59", "data": {"field1": "newvalue1", "field2": "newvalue2"}}

我必须将此 json 变形为以下内容:

    {
        "field1": {"before": "oldValue1", "new": "newvalue1"},
        "field2": {"before": "oldValue2", "new": "newvalue2"}
    }

问题是 field1 和 field2 并不总是存在。原始 JSON 是由 DevExtreme DataGrid 对一行的更新动态生成的。这是我得到的结果:

编辑: 下面的代码有效

    var outputJSON = {};
    var changes = {"field1": "newvalue1", "field2": "newvalue2"};
    for(var i = 0; i < Object.keys(changes).length; i++){
        var keyName = Object.keys(changes)[i];
        outputJSON[keyName] = {};

        outputJSON[keyName]["before"] = Object.values(changes)[0];
        outputJSON[keyName]["after"] = Object.values(changes)[1];
    }
    console.log(JSON.stringify(outputJSON));

我认为这更接近我的需要。

工作代码:

    var keys = Object.keys(JSON.stringify(changes));
            for (var i = 0; i < Object.keys(changes).length; i++) {
                var fieldName = Object.keys(changes)[i];
                inputJSON[fieldName] = {};
                inputJSON[fieldName]["before"] = editRow[fieldName];
                inputJSON[fieldName]["after"] = (changes)[fieldName];
            }