【问题标题】:JSON: Keys and Field Names: Dynamically ParseJSON:键和字段名称:动态解析
【发布时间】:2021-11-02 15:59:15
【问题描述】:

我有一个 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));

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

【问题讨论】:

    标签: json dynamic


    【解决方案1】:

    工作代码:

        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];
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      • 2014-12-22
      • 1970-01-01
      相关资源
      最近更新 更多