我正在使用JSON填充某些字段。我加载的键都是驼峰式的,看起来像下面的样子……
{
"ThisIsAnother": {},
"ThisIsAnExample": {}
}
我将它们拉回原位,但是我需要对其进行格式化以使其正确,例如
{
"This Is Another": {},
"This Is An Example": {}
}
使用JS是否可行?还是应该以其他方式格式化JSON?
答案 0 :(得分:5)
您始终可以在对象的所有键的大写字母处进行分割。 不过,我相信用户应该适应并使用正确的json键命名。
let data = {
"ThisIsAnother": {}
};
Object.keys(data).forEach((key) => {
let newKey = key.split(/(?=[A-Z])/).join(" ");
data[newKey] = data[key];
delete data[key];
});
console.log(data);
答案 1 :(得分:0)
您可以将带有capture group的正则表达式用于[A-Z]
到replace
多余的空格
(注意:这将创建一个新对象。如果您希望对同一对象进行突变,则可以将此正则表达式与已接受的答案一起使用)
let data = {
"ThisIsAnother": {},
"ThisIsAnExample": {}
};
const newObj = Object.keys(data).reduce((acc, k) => {
let newKey = k.replace(/\B([A-Z])/g, " $1");
acc[newKey] = data[k];
return acc
},{});
console.log(newObj);
答案 2 :(得分:0)
const json = {
ThisIsAnExample: {},
ThisIsAnother: {}
};
const result = Object.entries(json).reduce((all, [key, value]) => {
all[key.match(/[A-Z][a-z]+/g).join(" ")] = value
return all;
}, {});
console.log(result);