求这个字符串转成数组的步骤
求这个字符串转成数组的方法
用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是可以实现的,但是这感觉也太山寨了,有直接的方法吗?
------解决方案--------------------
str="[[0,1,3],[2,5,1],[1,3,2]]"
var a=eval(str);
------解决方案--------------------
json的起源就在于....
可以直接 var json = eval(str);
不过这个有安全隐患,可以动态执行str里的js,如果是自己的程序就无所谓了。要安全点的话可以先校验一下,清除里面的可执行代码。
最新的浏览器已经带有json解析和拼装功能了。
用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是可以实现的,但是这感觉也太山寨了,有直接的方法吗?
------解决方案--------------------
str="[[0,1,3],[2,5,1],[1,3,2]]"
var a=eval(str);
------解决方案--------------------
json的起源就在于....
可以直接 var json = eval(str);
不过这个有安全隐患,可以动态执行str里的js,如果是自己的程序就无所谓了。要安全点的话可以先校验一下,清除里面的可执行代码。
最新的浏览器已经带有json解析和拼装功能了。
/*
---
name: JSON
description: JSON encoder and decoder.
Copy from mootools 1.4.5
license: 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(/(?:^
------解决方案--------------------