首页 > 解决方案 > 使用 JSON.parse 重命名 JSON 字段

问题描述

假设我们有这个 JSON 字符串:

const v = `{"foo":"bar"}`;

有没有办法使用 JSON.parse 配置解析,以便重命名字段,例如将字段名称大写:

const parsed = JSON.parse(v, captitalize);
console.log(parsed);  // => {Foo: "bar"}

或某种方式来转换字段名称,具体取决于您正在使用的字段?

标签: javascriptnode.jsjson

解决方案


您可以使用reviver参数在JSON.parse对象恢复时对其进行修改:

const v = `{"foo":"bar"}`;
const result = JSON.parse(v, (name, value) => {
  if (value && typeof value === "object" && !Array.isArray(value)) {
    // It's a non-null, non-array 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);


推荐阅读