在反序列化JSON对象时,有没有办法将属性名称转换为小写?

时间:2015-10-01 22:45:44

标签: javascript json angularjs

我无法控制我正在通话的网络服务。它返回带有大写属性名称的JSON。这困扰我。

是否有任何Angular插件可以修复此问题?或者在javascript中有一种简单有效的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用for (auto it : vec)函数作为参数传递给JSON.parse

reviver

基本上,它将每个属性转换为小写,并检查它是否不同。如果它不同,则设置小写属性并返回undefined,从而删除非小写的属性。如果它们相等,则返回值,因此没有什么特别的。

答案 1 :(得分:1)

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];
}