Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JSON字符串反序列化为列表数组_Javascript_Arrays_Json_String_Deserialization - Fatal编程技术网

Javascript 将JSON字符串反序列化为列表数组

Javascript 将JSON字符串反序列化为列表数组,javascript,arrays,json,string,deserialization,Javascript,Arrays,Json,String,Deserialization,我有一根绳子 var my_str="[(0,10),(1,15),(2,48),(3,63),(4,25),(5,95),(6,41),(7,31),(8,5),(15,2)]"; 我需要把它转换成一个列表数组。比如说, alert(my_str[1]) 将给出1,15的输出 我尝试了以下方法: var myarray = JSON.parse(my_str); 但是它抛出了错误“意外的标记(在JSON中位于位置1)”我尝试了这个 var myarray = JSON.parse(my_

我有一根绳子

var my_str="[(0,10),(1,15),(2,48),(3,63),(4,25),(5,95),(6,41),(7,31),(8,5),(15,2)]";
我需要把它转换成一个列表数组。比如说,

alert(my_str[1])
将给出1,15的输出

我尝试了以下方法:

var myarray = JSON.parse(my_str);
但是它抛出了错误“意外的标记(在JSON中位于位置1)”

我尝试了这个

var myarray = JSON.parse(my_str); 
但它抛出错误“意外标记(在JSON中的位置1)”

因此,我将字符串的结构更改为:

var my_str="[[0,10],[1,15],[2,48],[3,63],[4,25],[5,95],[6,41],[7,31],[8,5],[15,2]]";
你必须用
替换
,然后,应用
评估

eval(arr.replace(/(/g,'\'(').replace(/)/g,')\''));
//> ["(0,10)", "(1,15)", "(2,48)", "(3,63)", "(4,25)", "(5,95)", "(6,41)", "(7,31)", "(8,5)", "(15,2)"]

这是一个相当幼稚的想法,但确实有效(没有
JSON.parse
eval
):


问题是您正在使用一个奇怪的sintax来分隔内部对象。使用“[”和“]”而不是“(“和”)”是合适的。 无论如何,你可以很容易地用javascript替换它们,并使你的结构成为一个字符串数组。听起来有点令人毛骨悚然,但这样你就可以创建一个合法的JSON对象,并受益于JS本机方法

var my_array = JSON.parse(my_str.replace(/\(/g,'[').replace(/\)/g,']'))
现在可以处理my_数组对象,并使用数组索引检索数对

my_array[1] ---> 1,15

var myarray=JSON.parse(my_str);但它会抛出错误“意外标记(在JSON位置1中)”将您的注释部分也添加到问题中。这样会更清楚。是的,您是rite,我的语法不对。我更正了n只是使用JSON.parse(my_str);谢谢
var my_array = JSON.parse(my_str.replace(/\(/g,'[').replace(/\)/g,']'))
my_array[1] ---> 1,15