js下用eval生成JSON对象
作者:
在使用eval生成JSON对象时,一定要注意添加一对圆括号
例如:var json = eval('('+ret+')');
假设我们在服务器端使用php的encode_json()生成需要返回的字符串
如果生成的字符串是[{"name":"boke"},{"age":"23"}],
我们可以直接使用eval([{"name":"boke"},{"age":"23"}])生成相应的JSON对象;
如果生成的字符串是{“name":"boke","age":"23"},
我们使用eval({“name":"boke","age":"23"})生成JSON对象时就会出错
,我们需要这样写eval(({“name":"boke","age":"23"}))。
eval(( ))的写法同样适用于包括第一种情况在内的其它通过encode_json()函数生成的字符串
也可以不用eval,用一个特殊的
function getdata(data){
return (new Function("return "+data))();
}
假设我们在服务器端使用php的encode_json()生成需要返回的字符串
如果生成的字符串是[{"name":"boke"},{"age":"23"}],
我们可以直接使用eval([{"name":"boke"},{"age":"23"}])生成相应的JSON对象;
如果生成的字符串是{“name":"boke","age":"23"},
我们使用eval({“name":"boke","age":"23"})生成JSON对象时就会出错
,我们需要这样写eval(({“name":"boke","age":"23"}))。
eval(( ))的写法同样适用于包括第一种情况在内的其它通过encode_json()函数生成的字符串
也可以不用eval,用一个特殊的
复制代码 代码如下:
function getdata(data){
return (new Function("return "+data))();
}