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

Posted

技术标签:

【中文标题】JSON:键和字段名称:动态解析【英文标题】:JSON: Keys and Field Names: Dynamically Parse 【发布时间】: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));

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

【问题讨论】:

【参考方案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];
            

【讨论】:

以上是关于JSON:键和字段名称:动态解析的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 GSON 解析动态 JSON 字段?

SQL解析Json字段

SQL解析Json字段

SQL解析Json字段

SQL解析Json字段

c# json数组动态字段名