javascript - Javascript:将返回的 JSON 对象属性转换为 PascalCase
问题描述
我有一个 JSON 对象。我想将数组转换为 PascalCase:
contacts: [{ givenName: "Matt", familyName: "Berry" }]
Contacts: [{ GivenName: "Matt", FamilyName: "Berry" }]
以下答案无效
Lodash 有 Pascal 大小写函数吗?它没有在运行时找到它。
_.mapKeys(obj, (v, k) => _.camelCase(k))
当前使用 Typescript Angular 10 库。
将返回的 JSON 对象属性转换为(较低的第一个)camelCase
寻找遍历对象数组的所有成员,
解决方案
你可以这样做;
import {camelCase, startCase} from 'lodash';
startCase(camelCase("givenName")).replace(/ /g, ''); // will procude GivenName
检查此要点以了解所有其他情况。
如果你想转换一个对象的所有属性,你可以使用这个;
const pascalizeKeys = (obj) => {
if (Array.isArray(obj)) {
return obj.map(v => pascalizeKeys(v));
} else if (obj !== null && obj.constructor === Object) {
return Object.keys(obj).reduce(
(result, key) => ({
...result,
[toPascalCase(key)]: pascalizeKeys(obj[key]),
}),
{},
);
}
return obj;
};
const toPascalCase = (str) => startCase(camelCase(str)).replace(/ /g, '')
取自此答案的代码并进一步修改以进行帕斯卡化。
这是一个stackblitz,因此您可以进一步检查。
推荐阅读
- c# - UWP Windows 10 IoT 2 通道同时录音
- c# - 在 Linq 查询中用类型名称替换 var
- ios - 比较一个结构的两个值并在 UITableView swift 4.0 中获取额外的单元格
- javascript - 如何在 React 中更改字体颜色、字体大小和按钮颜色
- scala - Scala:oneSet.diff(otherSet) 不工作
- java - Java 字符串 S="{({)}}"
- corda - 非参与方可以更新corda中的状态吗?
- java - 2018-05-19T04:51:29.6702751+00:00 的 SimpleDateFormat
- java - Java 1.8 支持哪个版本的 Jenkins 版本?
- html - 尝试使用 prop 有条件地将 css 应用于组件,但它不起作用