Javascript 将字符串转换为多维数组
我有一根绳子Javascript 将字符串转换为多维数组,javascript,multidimensional-array,Javascript,Multidimensional Array,我有一根绳子 var myString = "['Item', 'Count'],['iPad',2],['Android',1]"; 我需要将其转换为一个数组,其中: myArray[0][0] = 'Item'; myArray[0][1] = 'Count'; myArray[1][0] = 'iPad'; myArray[1][1] = 2; 等等 字符串的长度可以不同,但始终采用上述格式。我尝试过拆分、拼接和任何其他我能想到的“ing”,但我没有得到它 有人能帮忙吗?如果字符串肯
var myString = "['Item', 'Count'],['iPad',2],['Android',1]";
我需要将其转换为一个数组,其中:
myArray[0][0] = 'Item';
myArray[0][1] = 'Count';
myArray[1][0] = 'iPad';
myArray[1][1] = 2;
等等
字符串的长度可以不同,但始终采用上述格式。我尝试过拆分、拼接和任何其他我能想到的“ing”,但我没有得到它
有人能帮忙吗?如果字符串肯定是安全的,最简单的方法是将
[
和]
连接到开头和结尾,然后评估它
var arr = eval("[" + myString + "]");
如果您想要更高的安全性,请对字符串使用双引号,并以相同的方式使用JSON.parse()
var myString = '["Item", "Count"],["iPad",2],["Android",1]';
var arr = JSON.parse("[" + myString + "]");
这将限制您使用受支持的JSON数据类型,但给定您的示例字符串,它会很好地工作。像这样编写代码
var myString = "[['Item', 'Count'],['iPad',2],['Android',1]]";
而且
var arr = eval(myString);
试试这个:
JSON.parse("[['Item', 'Count'],['iPad',2],['Android',1]]".replace(/\'/g,"\""))
我尝试使用eval,但在我的情况下,它不起作用。。。我需要的是将字符串转换为对象数组。这是我的字符串(ajax请求结果):
当我尝试时:
x = "{'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}";
eval(x);
我收到一个“意外令牌:”错误
我的解决办法是:
x = "{'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}";
x = "temp = " + x + "; return temp;"
tempFunction = new Function (x);
finalArray = tempFunction();
现在有一个最终的目标雷
我希望能提供帮助@RoyiNamir:我的回答中已经提到了这一点,但我添加了修改后的字符串以澄清问题。太好了!我已经找了一段时间了!谢谢哇!非常感谢您需要添加的评估功能代码>最后(eval(“[”+myString+“];”)
)eval
是危险的,您不应该在用户可以以任何方式进行交互的任何内容上使用它<代码>新函数(字符串)
与eval一样危险,请确保用户不能更改对象“”中的任何属性。
x = "{'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}";
x = "temp = " + x + "; return temp;"
tempFunction = new Function (x);
finalArray = tempFunction();