说我们有这个JSON字符串:
const v = `{"foo":"bar"}`;
是否可以使用JSON.parse配置解析,以便重命名字段,例如将字段名大写:
const parsed = JSON.parse(v, captitalize);
console.log(parsed); // => {Foo: "bar"}
或通过某种方式转换字段名称,具体取决于您使用的是哪个字段?
答案 0 :(得分:4)
您可以使用 reviver 参数JSON.parse
来修改对象,使其恢复:
const v = `{"foo":"bar"}`;
const result = JSON.parse(v, (name, value) => {
if (value && typeof value === "object") {
// It's a non-null object, create a replacement with the keys initially-capped
const newValue = {};
for (const key in value) {
newValue[key.charAt(0).toUpperCase() + key.slice(1)] = value[key];
}
return newValue;
}
return value;
});
console.log(result);
答案 1 :(得分:1)
您可以执行以下操作:
// Better use try-catch here
const parsedV = JSON.parse(v);
const parsed = Object.keys(parsedV).reduce((acc, key) => {
acc[capitalize(key)] = parsedV[key];
return acc;
}, {});