字符串转为object格式

clipboard.png

我获取到的是一个字符串str,请问我如何将这个字符串转成object格式的,便于获取str里面的name值,(用eval()函数可以,但是怕会出现什么意想不到的问题)


请看清问题,这个str是已经写好了的一个object,是为了给我写好的一个函数做参数用的,而代码中变量obj是告诉我,我要活取谁的name属性(如截图,我要获取的是从data-src中获取来的'str'的name属性,但是当前这个是个字符串,我想将它转换成object格式,)


console.log(window[obj].name)可以获取到我想要的,一时居然没想起来,感谢各位的回答

阅读 5.3k
6 个回答

console.log(window[obj].name)

function str2obj(str){
    return {name: str};
}

str2obj("str"); //=> {name: "str"}

Object是一个对象,你应该是想转换成json吧。。
jquery示例:

var str = '{"name":"John"}';

var obj = jQuery.parseJSON(str);
alert( obj.name === "John" )

泻药~

你是指如下情形?

str='{"name":"str"}'
j=JSON.parse(str)
console.log(j.name) //"str"

(如截图,我要获取的是从data-src中获取来的'str'的name属性,但是当前这个是个字符串,我想将它转换成object格式,)

楼主你都没给我们看到'str'是什么样,谁知道你想处理什么东西?

只能猜测是JSON啰~

楼上的写的都很对,但是,根据楼主自身的情况,需要保证src属性的值是一个合法的json字符串。
不然会报错。
当然,这么转也可以

var obj=eval('('+str+')');
console.log(obj.name);

这个可能对字符串的格式要求不是那么高,兼容性方面嘛……没具体测过,不过你可以试一下。

JSON.parse 无法解析不规范的json串, 使用eval, 解析错误返回null

function str2obj(str){
    try{
        return eval('('+str+')');
    }catche(e){
        return null;
    }
}

var obj = str2obj( $("#aaa").data("src") );
if(obj){
    alert( obj.name );
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题