我有一个类似于document.cookie
的字符串:
var str = 'foo=bar, baz=quux';
将其转换为数组非常容易:
str = str.split(', ');
for (var i = 0; i < str.length; i++) {
str[i].split('=');
}
它会产生类似这样的结果:
[['foo', 'bar'], ['baz', 'quux']]
转换为对象(在这种情况下更为合适)较为困难。
str = JSON.parse('{' + str.replace('=', ':') + '}');
这将产生一个无效的对象,如下所示:
{foo: bar, baz: quux}
我想要这样一个对象:
{'foo': 'bar', 'baz': 'quux'}
注意:在我的示例中,我使用了单引号。但是,如果您正在使用JSON.parse()
,请记住,当发布您的代码时,它需要双引号而不是单引号。
更新
感谢大家。这里是我将使用的函数(供以后参考):
function str_obj(str) {
str = str.split(', ');
var result = {};
for (var i = 0; i < str.length; i++) {
var cur = str[i].split('=');
result[cur[0]] = cur[1];
}
return result;
}
','
(没有空格),然后对各部分进行修整,而不是拆分成', '
(注意空格)。这样可以使输入字符串中美化所用的 0、1、2、.. 个空格或制表符无关紧要。 - Stijn de WittcookieObject
这样的东西会很不错。 - KyleFarris