繁体   English   中英

将字符串转换为多维数组

[英]Convert string to a 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;

等等...

字符串的长度可以不同,但​​始终采用上面的格式。 我尝试过分裂和拼接以及任何其他“我能想到的”,但我无法理解。

有人可以帮忙吗?

如果字符串肯定是安全的,最简单的是将[]连接到开头和结尾,然后eval它。

var arr = eval("[" + myString + "]");

如果您想要更高的安全性,请为字符串使用双引号,并以相同的方式使用JSON.parse()

var myString = '["Item", "Count"],["iPad",2],["Android",1]';

var arr = JSON.parse("[" + myString + "]");

这将限制您支持的JSON数据类型,但是给定您的示例字符串,它将正常工作。

试试这个 :

JSON.parse("[['Item', 'Count'],['iPad',2],['Android',1]]".replace(/\'/g,"\""))

在此输入图像描述

写你的代码就像

var myString = "[['Item', 'Count'],['iPad',2],['Android',1]]";

只是

 var arr = eval(myString);

我尝试使用eval,但在我的情况下它不起作用......我需要将一个字符串转换为一个对象数组。 这是我的字符串(ajax请求结果):

{'printjob':{'bill_id':7998,'product_ids':[23703,23704,23705]}}

当我尝试:

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();

现在有一个对象finalArray!

我希望能帮到你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM