使用JSON.parse重命名JSON字段

时间:2018-11-21 07:43:32

标签: javascript node.js json

说我们有这个JSON字符串:

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

是否可以使用JSON.parse配置解析,以便重命名字段,例如将字段名大写:

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

或通过某种方式转换字段名称,具体取决于您使用的是哪个字段?

2 个答案:

答案 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;
}, {});