js中字符串转化成对象

我的一个 json 数据是 val.element.x
其中 element 是动态的。我赋值 element = a
我想使程序执行 的时候 是 按 val.a.x指向,但是实际是 按 val.element.x 知性的。所以就报错了。怎么解决这个问题,跪求大神指点。。。

使用eval()函数。可以讲json字符串转换为json对象。

var json1 = '{"aa":"a", "bb":"b", "length":2, "cc":"ll"}';
var data = eval('(' + json1 + ')'); //转换字符串为json对象
alert(data.cc);//输出“ll”

函数说明:

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

语法

eval(string) 

参数                描述

string    
   必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。    
 

返回值

通过计算 string 得到的值(如果有的话)。

说明

该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。

如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。


温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-29
文本转化为对象

javascript

var test='{ colkey: "col", colsinfo: "NameList" }'

var obj2=eval("("+test+")");

alert(obj2.colsinfo);

var test='{ colkey: "col", colsinfo: "NameList" }'

var obj2=eval("("+test+")");

alert(obj2.colsinfo);

把文本转化为数组

[javascript]

var test='["colkey", "col", "colsinfo","NameList" ]'

var obj2=eval("("+test+")");

alert(obj2.length);
第2个回答  2012-11-14
$.getJSON(
url,
function(json)
{xx=eval("json. “+ element+".x");})
xx是你需要指向的。本回答被提问者采纳