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:键和字段名称:动态解析的主要内容,如果未能解决你的问题,请参考以下文章