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