jq怎么将字符串转成json格式

jq如何将字符串转成json格式
现在我的字符串为var str = "userId:3002110,accountName:1902934,nickName:长沙一种,role:taecher";要把字符串转成json格式获取里面的userId的值,用了eval,输出的值为undefined。我要如何获取userId的值了。急需帮助
------解决思路----------------------
var str = "userId:3002110,accountName:1902934,nickName:长沙一种,role:taecher";
str=str.split(',')
var d={};
for(var i=0;i<str.length;i++)d[str[i].split(':')[0]]=str[i].split(':')[1]
alert(d.userId)
------解决思路----------------------
说下正则做法吧
var str = 'userId:3002110,accountName:1902934,nickName:长沙一种,role:taecher';
str = str.replace(/:(.+?)(,
------解决思路----------------------
$)/g,':\"$1\",').replace(/(^
------解决思路----------------------
,)(.+?):/g,',"$2":').replace(/(^,)
------解决思路----------------------
(,$)/g,'');
console.log(JSON.parse('{'+str+'}'));