在反序列化JSON对象时,是否有方法将属性名称转换为小写?
Is there a way to convert property names to lower case when deserializing a JSON object?
我无法控制我正在调用的web服务。它返回带有大写属性名的JSON。这让我很困扰。
有没有Angular插件可以解决这个问题?或者在javascript中有一种简单有效的方法来做到这一点?
您可以使用传递reviver
函数作为JSON.parse
的参数:
JSON.parse('{"Test": {"Foo": 1, "Bar": 2} }', function(prop, value) {
var lower = prop.toLowerCase();
if(prop === lower) return value;
else this[lower] = value;
});
基本上,它将每个属性转换为小写,并检查它们是否不同。如果不相同,则设置小写属性并返回undefined,从而删除非小写属性。如果它们相等,则返回值,因此没有做任何特殊操作。
Javascript Object类有一个名为keys()的方法。您可以使用它来遍历对象属性名,并在将JSON字符串转换为javascript对象后使用toLowerCase()对其进行编辑。
var obj = {"Test": "foo"};
var ar = Object.keys(obj);
for(var i = 0; i < ar.length; i++){
var upperCasePropertyName = ar[i];
ar[i] = ar[i].toLowerCase();
obj[ar[i]] = obj[upperCasePropertyName];
delete obj[upperCasePropertyName];
}
相关文章:
- 可以转换显示属性吗?如果没有,什么'这是最好的解决方案
- 手柄'img'单击事件并插入'alt'使用jQuery将属性转换为文本框
- Javascript将数组中对象的属性转换为字符串
- 如何在不使用css转换的情况下将jQuery animate与css3属性相结合
- 如何将CSS背景位置属性从百分比转换为像素
- 如何将返回一串数字的 JSON 属性转换为日期
- 使用多个 css 类将 css 转换属性应用于 DOM 对象时遇到问题
- 使用 JavaScript 更新转换属性中的 rotate() 属性
- 如何使用更多次 css 转换属性
- Babel React 转换:属性值预期的字符串类型,但得到空
- jQuery 如何将 CSS 转换属性设置为任何对象
- 使用 jQuery 2.1+ 更改 css 会忽略转换属性
- 使用javascript解析SVG转换属性
- mozilla css转换属性dosn'不起作用
- CSS中转换属性的动态值
- 意外值翻译解析转换属性
- Css3过渡+转换属性在早期版本的IE中不工作
- -translate的webkit转换属性
- 用于CSS3动画和转换属性的Javascript代码
- XML3D css转换vs自定义转换属性