我从服务器得到一个像这样的json响应:
{
"Response": {
"FirstName": "John","LastName": "Smith","NickNames": {
"NameOne": "Johnny","NameTwo": "JohnS","NameThree": "Smithy"
},"Success": true,"Errors": []
}
}
有没有办法通过一个函数来运行这个响应,以便每个键值对的键都是camelCase?
所以输出看起来像:
{
"response": {
"firstName": "John","lastName": "Smith","nickNames": {
"nameOne": "Johnny","nameTwo": "JohnS","nameThree": "Smithy"
},"success": true,"errors": []
}
}
如果有人能指出我正确的方向,那将是伟大的.
谢谢.
解决方法
您将给予JSON.parse一个reviver函数,该函数将值分配给较低级别的新属性.
function reviver(key,val) {
if (key)
this[key.charat(0).toLowerCase() + key.slice(1)] = val;
else
return val;
}
var parsed = JSON.parse(myjson,reviver);
因此,如果键至少有一个字符,它将小写第一个字符并添加到其余部分,并将该键添加到对象,并允许该函数返回未定义,以便不使用原始键.
如果键没有字符,它只返回原始处理的值.
演示:http://jsfiddle.net/GrupQ/