用AJAX调用某HTTP接口,返回值为一个这样的字符串:[[0,1,3],[2,5,1],[1,3,2]]我知道var a = [[0,1,3],[2,5,1],[1,3,2]];得到的是一个二维数组
但上面返回的是一个字符串,如果var a = returnString;那么a也是一个字符串,如何把a转换为一个数组?我用split切割后再赋值给new Array是可以实现的,但是这感觉也太山寨了,有直接的方法吗?
但上面返回的是一个字符串,如果var a = returnString;那么a也是一个字符串,如何把a转换为一个数组?我用split切割后再赋值给new Array是可以实现的,但是这感觉也太山寨了,有直接的方法吗?
解决方案 »
- js的一点小问题
- 用js做时钟,关于时针清除的问题。求大神!!!!!!!!!
- showModalDialog如果关闭子窗口后刷新父窗口?怎么控制有的刷新,有的不刷新?
- 这个正则表达式是什么意思? /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/g
- 请问在FireFoxz中如何取接点的第N个子元素?
- [急急急]在母页面是否可以控制子页面执行函数
- 怎样编写一个ACTIVEX控件,用户下载以后操作加密狗?请大家指点
- 关于JavaScript 程序效率的看法,欢迎讨论
- 知道一个div的id,如何在javascript中得到这个object呢?
- 当文本框输入输入信息,后面的错误信息自动清空,焦点还在那个文本框内的时候
- 新手求指点,为什么我的浏览器打开后什么都不显示,谁知道哪里写错了
- js匹配图片地址和宽高
var a=eval(str);
可以直接 var json = eval(str);不过这个有安全隐患,可以动态执行str里的js,如果是自己的程序就无所谓了。要安全点的话可以先校验一下,清除里面的可执行代码。最新的浏览器已经带有json解析和拼装功能了。
/*
---name: JSONdescription: JSON encoder and decoder.Copy from mootools 1.4.5license: MIT-style license.SeeAlso: <http://www.json.org/>requires: [Array, String, Number, Function]provides: JSON...
*/if (typeof JSON == 'undefined') this.JSON = {};var special = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'};var escape = function(chr){
return special[chr] || '\\u' + ('0000' + chr.charCodeAt(0).toString(16)).slice(-4);
};JSON.validate = function(string){
string = string.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
replace(/(?:^|:|,)(?:\s*\[)+/g, ''); return (/^[\],:{}\s]*$/).test(string);
};JSON.encode = JSON.stringify ? function(obj){
return JSON.stringify(obj);
} : function(obj){
if (obj && obj.toJSON) obj = obj.toJSON(); switch (typeOf(obj)){
case 'string':
return '"' + obj.replace(/[\x00-\x1f\\"]/g, escape) + '"';
case 'array':
return '[' + obj.map(JSON.encode).clean() + ']';
case 'object': case 'hash':
var string = [];
Object.each(obj, function(value, key){
var json = JSON.encode(value);
if (json) string.push(JSON.encode(key) + ':' + json);
});
return '{' + string + '}';
case 'number': case 'boolean': return '' + obj;
case 'null': return 'null';
} return null;
};JSON.decode = function(string, secure){
if (!string || NWJ.type(string) != 'string') return null; if (secure || JSON.secure){
if (JSON.parse) return JSON.parse(string);
if (!JSON.validate(string)) throw new Error('JSON could not decode the input; security is enabled and the value is not secure.');
} return eval('(' + string + ')');
};