[英]How can I convert Python dictionary to JavaScript hash table?
[英]How can I convert a snakecased hash into camelcase in javascript
我非常习惯使用连接到Rails后端的javascript,大多数情况下,其中一个必须让步以接受其他格式设置规则,例如ruby的snake_case和javascript的camelCase。
有两种方法可以在这两种格式之间替换字符串,但是最好以更直接的方式考虑对哈希中的所有键进行深度替换。
我在Cofeescript中提供了为我解决的方法,如果您需要它的javascript版本,则可以在Coffescript site中将其转换。
class Converter
convertString: (string)->
#Switch to the needed format
string.replace(/(\_[a-z])/g, ($1)-> $1.toUpperCase().replace('_',''))
convertObject: (obj)->
newObj = {}
for k,v of obj
val = if typeof v is "object" and not Array.isArray(v) then @camelizeObject(v) else v
key = @camelizeString(k)
newObj[key] = val
newObj
如果您不反对使用外部库,那么lodash可以提供以下功能: https ://lodash.com/docs#snakeCase并且它还提供了许多有用的帮助程序,可用于处理Javascript中的数组/集合/字符串。
例如,使用mapKeys ,您可以轻松地将对象的键“转换”为snake_case:
var obj = {
fooBar: 'foo',
Bar_Foo: 'bar'
}
obj = _.mapKeys(obj, function (value, key) {
return _.snakeCase(key);
});
console.log(JSON.stringify(obj, null, 4));
/* output:
{
"foo_bar": "foo",
"bar_foo": "bar"
}
*/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.