将包含javascript函数的javascript数组转换为json并返回

将包含javascript函数的javascript数组转换为json并返回,javascript,json,Javascript,Json,我有一个JavaScript数组/对象,其中包含函数 var-map=[function(){alert('test')},function(){alert('test2')}] 如何将此数组转换为JSON并返回到可用的JavaScript代码 我应该使用eval还是预先创建这些函数,然后使用window[“functionname”]加载它们?下面是一种方法 要转换为JSON,可以执行以下操作: //your original map var map = [function(){ alert(

我有一个JavaScript数组/对象,其中包含函数

var-map=[function(){alert('test')},function(){alert('test2')}]

如何将此数组转换为JSON并返回到可用的JavaScript代码


我应该使用eval还是预先创建这些函数,然后使用
window[“functionname”]

加载它们?下面是一种方法

要转换为JSON,可以执行以下操作:

//your original map
var map = [function(){ alert('test') }, function(){ alert('test2') }];
//convert it to a string
var str = map.toString();
//add the string to a javascript object
var obj = {funcArrStr: str};
//convert that object to json
var json = JSON.stringify(obj);
var json = /* get json from server side */;
//parse the json
var parsed = JSON.parse(json);
//pull out the string from the parsed object
var funcArrStr = parsed.funcArrStr;
//wrap it in brackets [] and eval it to convert back to array
var evaled = eval('[' + parsed.funcArrStr + ']');
然后,对于解析,您可以执行以下操作:

//your original map
var map = [function(){ alert('test') }, function(){ alert('test2') }];
//convert it to a string
var str = map.toString();
//add the string to a javascript object
var obj = {funcArrStr: str};
//convert that object to json
var json = JSON.stringify(obj);
var json = /* get json from server side */;
//parse the json
var parsed = JSON.parse(json);
//pull out the string from the parsed object
var funcArrStr = parsed.funcArrStr;
//wrap it in brackets [] and eval it to convert back to array
var evaled = eval('[' + parsed.funcArrStr + ']');
运行下面的代码段并检查浏览器的javascript控制台以获取演示

var-map=[function(){alert('test')},function(){alert('test2')}];
log('map:');
控制台日志(map);
var str=map.toString();
log('将映射转换为字符串:');
console.log(str);
var obj={funcArrStr:str};
log('将其放入对象:');
控制台日志(obj);
var json=json.stringify(obj);
log('转换为json字符串:');
log(json);
var parsed=JSON.parse(JSON);
log('parse json string:');
console.log(已解析);
var funcArrStr=parsed.funcArrStr;
log('pull out string from object');
console.log(funcArrStr);
var evaled=eval('['+parsed.funcArrStr+']');
log('wrap in[]和eval:');

控制台日志(evaled)供参考:如果数组中有函数,它不能是JSON。@是的,我知道,这就是为什么我试图找到一种将其转换为JSON的方法,比如将其转换为字符串,然后将其转换回可执行的JavaScription为什么需要它作为字符串/JSON?那么为什么不加载一个包含方法的JavaScript文件呢?是的,可以=这真的很酷,但是如果我有一个包含几百个函数的数组,eval会如何影响我的javascript速度呢?哦,那太棒了,在我这方面效果很好,谢谢!