如何将JavaScript对象从PascalCase属性克隆到camelCase属性(在JavaScript中)?
当我序列化ASP.NET MVC表单时,我得到以下结果:如何将JavaScript对象从PascalCase属性克隆到camelCase属性(在JavaScript中)?,javascript,Javascript,当我序列化ASP.NET MVC表单时,我得到以下结果: { DestinationId: "e96dd00a-b042-41f7-bd59-f369904737b6", ... } 但是我想要这个,这样它就符合JS编码惯例: { destinationId: "e96dd00a-b042-41f7-bd59-f369904737b6", ... } 如何将对象和每个属性的第一个字符小写?简单的方法是对对象进行迭代: var newObj = {}; for (var p i
{
DestinationId: "e96dd00a-b042-41f7-bd59-f369904737b6",
...
}
但是我想要这个,这样它就符合JS编码惯例:
{
destinationId: "e96dd00a-b042-41f7-bd59-f369904737b6",
...
}
如何将对象和每个属性的第一个字符小写?简单的方法是对对象进行迭代:
var newObj = {};
for (var p in o) {
newObj[p.substring(0,1).toLowerCase()+p.substring(1)] = o[p];
}
还必须检查hasOwnProperty,并删除以前的属性
var object = { DestinationId: "e96dd00a-b042-41f7-bd59-f369904737b6" }
for ( var prop in object ) {
if ( object.hasOwnProperty( prop ) ) {
object[ prop.substring(0,1).toLowerCase() + prop.substring(1) ] = object[ prop ];
delete object[ prop ];
}
}
将这些东西当作字符串并使用Reg exps power不是更好吗
JSON.parse(
stringify(z).replace(
/(\“[^”]([^”]*\”\:)/g,
函数(all,head,tail){返回head.toLowerCase()+tail;}
)
)
可能是更优雅的解决方案-在转换为JS对象之前,用regexp替换JSON字符串中的内容。为什么要使用hasOwnProperty进行检查?您的Object.prototype是否具有其他功能?如果是这样的话,那就没有好处了。您必须定义自己的构造函数。实际上,如果第一个字符串来自后端,则不需要对其进行字符串化。