Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/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
Json 将字符串转换为javascript数组_Json - Fatal编程技术网

Json 将字符串转换为javascript数组

Json 将字符串转换为javascript数组,json,Json,我试图使用以下函数将字符串转换为Javascript数组,但它们似乎都不适合我。 我用于转换的函数如下所示:- var-array=angular.fromJson(字符串) var-array=JSON.parse(字符串) 有谁能告诉我如何在angularjs中将字符串转换成JavascriptArray 这是我的字符串:- ”[ [新日期(“2015/08/04 16:33:05”),26.2,15.0,36.0], [新日期(“2015/08/04 16:38:05”)、26.0、15

我试图使用以下函数将字符串转换为Javascript数组,但它们似乎都不适合我。 我用于转换的函数如下所示:-

  • var-array=angular.fromJson(字符串)
  • var-array=JSON.parse(字符串)
  • 有谁能告诉我如何在angularjs中将字符串转换成JavascriptArray

    这是我的字符串:-

    ”[
    [新日期(“2015/08/04 16:33:05”),26.2,15.0,36.0],
    [新日期(“2015/08/04 16:38:05”)、26.0、15.0、36.0],
    [新日期(“2015/08/04 16:43:05”),26.2,15.0,36.0],
    [新日期(“2015/08/04 16:48:05”),26.1,15.0,36.0],
    [新日期(“2015/08/04 16:53:05”),
    26.2, 15.0, 36.0
    ],
    [新日期(“2015/08/04 16:58:05”),26.2,15.0,36.0],
    [新日期(“2015/08/04 17:03:05”)、26.3、15.0、36.0],
    [新日期(“2015/08/04 17:08:05”),26.3,15.0,36.0],
    ]“
    试试:


    因为它不是JSON字符串,所以使用
    eval(string)
    方法可以获得所需的输出

    但人们说eval是邪恶的:

    演示:


    更新:

    您的数组是字符串格式,带有未计算的日期表达式。只需按如下所示对其求值,即可获得阵列

     var array = eval("[ [new Date('2015/08/04 16:33:05'), 26.2, 15.0, 36.0],  [new Date('2015/08/04 16:43:05'), 26.2, 15.0, 36.0] ]");
    

    您的示例似乎根本不是JSON。它不是您的JSON字符串,它已经是一个javascript数组。我忘记在“”之间提及我的数据……它是我的JSON字符串,如“值”:“[[新日期(\“2015/08/06 16:37:05\”),28.8,15.0,36.0],[新日期(\“2015/08/06 16:42:05\”),28.8,15.0,36.0],]”您的确切字符串是什么。转换之前?Hey Cesarluis的可能副本能否请您告诉我如何从这个strng值中提取javascript数组:-“value”:“[[新日期(\'2015/08/06 16:37:05\”)、28.8、15.0、36.0],[新日期(\'2015/08/06 16:42:05\”、28.8、15.0、36.0],]”这不是有效的JSON字符串。如果strval等于您所说的,则将其包装在“{”和“}”(例如,objstrval=“{”+strval+“}”)中,然后使用@cesarlius所说的-JSON.parse(objstrval),您可能想了解什么是有效的JSON,例如。G这里感谢您的回复,但对我来说仍然不起作用。我尝试了两种不同的方法:一种是:-var ObjStrValue=“{”+graphData+“}”var array=angular.fromJson(ObjStrValue);警报(阵列);和@igor R提到的另一个变量,即var ObjStrValue=“{”+graphData+“}”var array=JSON.parse(ObjStrValue);警报(阵列);新日期不是一个有效的JSON,下面的@Ashwin K在这两方面都是正确的-eval会有所帮助,但这是一个糟糕的做法。在这里使用eval(String)通过函数构造函数查看更好的解决方案,我并没有得到期望的结果。这是我在Api响应中得到的完整字符串:JSFIDLE:请检查我的新线程:
     var array = eval("[ [new Date('2015/08/04 16:33:05'), 26.2, 15.0, 36.0],  [new Date('2015/08/04 16:43:05'), 26.2, 15.0, 36.0] ]");