gpt4 book ai didi

javascript - 更新动态 JSON 键名

转载 作者:行者123 更新时间:2023-11-29 16:45:14 24 4
gpt4 key购买 nike

我遇到了一个有趣的情况,我正在尝试解决这个问题。我可以访问 JSON 输出,其中包含数字键名称,例如 _22_155 等。我创建了一个映射,其中包含以下内容这些键名翻译为但我很难弄清楚如何更新 json 并将原始键名替换为 map 中的键名。

这是我的 json 字符串的示例,其中包含真实的字段名称:

FieldID 对应于源 json 数据,不带下划线。

[
{
"FieldID": "7",
"FieldName": "Emp ID",
"IsSortableInput": "0",
"IsFilterableInput": "0",
"ViewAlias": "EmpID",
"LogicOperator": "IN",
"AllowMultipleValues": "1",
"IsViewable": "1",
"PrimaryOnly": "0",
"DisplayOrder": "1"
},
{
"FieldID": "3",
"FieldName": "QID",
"InputTypeID": "1",
"FieldPlaceholder": "Enter Employee Name",
"IsSortableInput": "1",
"IsFilterableInput": "1",
"ViewAlias": "QID",
"LogicOperator": "IN",
"AllowMultipleValues": "1",
"IsViewable": "1",
"PrimaryOnly": "0",
"DisplayOrder": "2",
"FieldTypeDesc": "PeopleSearch"
},
{
"FieldID": "6",
"FieldName": "NTID",
"IsSortableInput": "1",
"IsFilterableInput": "0",
"ViewAlias": "NTID",
"LogicOperator": "IN",
"AllowMultipleValues": "1",
"IsViewable": "1",
"PrimaryOnly": "0",
"DisplayOrder": "3"
}

]

我的目标是循环遍历源 json 字符串,找到映射中的键名称(定义的 json)并重命名它们。最终在我的源 json 数据中将 _7 替换为 Emp ID

源 JSON:

[
{
"_3": "Q123",
"_7": "E12345"
},
{
"_3": "X123",
"_7": "E34567"
}
]

所需的输出是更改源 JSON,将其转换为:

[
{
"QID": "Q123",
"Emp ID": "E12345"
},
{
"QID": "X123",
"Emp ID": "E34567"
}
]

我完全不知道从哪里开始使用这种方法。不确定键名是否可以重命名或者是否需要在此过程中删除等。

寻找一些解决此问题的建议。

最佳答案

您可以为旧键和新键构建引用并迭代数组和键。然后分配给新属性并删除旧属性。

var keynames = [{ FieldID: 7, FieldName: "Emp ID", IsSortableInput: 0, IsFilterableInput: 0, ViewAlias: "EmpID", LogicOperator: "IN", AllowMultipleValues: 1, IsViewable: 1, PrimaryOnly: 0, DisplayOrder: 1 }, { FieldID: 3, FieldName: "QID", InputTypeID: 1, FieldPlaceholder: "Enter Employee Name", IsSortableInput: 1, IsFilterableInput: 1, ViewAlias: "QID", LogicOperator: "IN", AllowMultipleValues: 1, IsViewable: 1, PrimaryOnly: 0, DisplayOrder: 2, FieldTypeDesc: "PeopleSearch" }, { FieldID: 6, FieldName: "NTID", IsSortableInput: 1, IsFilterableInput: 0, ViewAlias: "NTID", LogicOperator: "IN", AllowMultipleValues: 1, IsViewable: 1, PrimaryOnly: 0, DisplayOrder: 3 }],
source = [{ _3: "Q123", _7: "E12345" }, { _3: "X123", _7: "E34567" }],
reference = {};

keynames.forEach(function (o) {
reference['_' + o.FieldID] = o.FieldName;
});

source.forEach(function (o) {
Object.keys(o).forEach(function (k) {
o[reference[k]] = o[k];
delete o[k];
});
});

console.log(source);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 更新动态 JSON 键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42140579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com