将字符串转换为JavaScript对象
正在尝试以下字符串值转换为JavaScript对象 例将字符串转换为JavaScript对象
string="name=usernamex&gender=boy&age=10&version_obj=1"
到
var user={ name:'username', gender:'boy',age:10,version_obj=1}
有人可以帮助我走出
看起来像你想要querystring
模块:http://nodejs.org/api/querystring.html
querystring.parse('foo=bar&baz=qux&baz=quux&corge')
// { foo: 'bar', baz: ['qux', 'quux'], corge: '' }
有任何方式做到这一点没有节点? 编辑:没关系,这是回答下面 – 2014-11-21 21:38:11
@JeremyW - 当然,有很多方法,请参阅下面的原始JS版本的plbsam的答案。但是如果你已经使用了节点,就像OP的标签所表明的那样,这是简单的方法。 – nrabinowitz 2014-11-21 21:41:26
同意,容易和可读。 – 2014-11-21 21:42:37
与纯JavaScript ..
var str="name=usernamex&gender=boy&age=10&version_obj=1";
var array = str.split('&');
var obj = {};
array.forEach(function(value){
var x = value.split('=');
obj[x[0]] = decodeURIComponent(x[1]);
});
console.log(obj);
你的脚本没有正确处理URI编码值 – 2014-11-21 21:47:03
你能举个例子吗? @JonathanGray – 2014-11-21 21:49:40
name = usernamex&gender = boy&age = 10&version%20obj = 1 – 2014-11-21 21:50:59
如果你不想使用一个模块:
var strArr = string.split("&");
var user = {}, i = 0, n;
while(i<strArr.length) {
n = strArr[i].split("=");
if(n.length == 2)
user[decodeURIComponent(n[0])]
= decodeURIComponent(n[1]);
i++;
}
*仅用于示例,不适用于生产环境。 – 2014-11-21 22:21:06
http://nodejs.org/api/querystring.html – gvk 2014-11-21 21:35:04