Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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:如何将数组的AJAX返回字符串表示形式转换为数组_Javascript_Ajax_Arrays - Fatal编程技术网

Javascript:如何将数组的AJAX返回字符串表示形式转换为数组

Javascript:如何将数组的AJAX返回字符串表示形式转换为数组,javascript,ajax,arrays,Javascript,Ajax,Arrays,我必须将从AJAX返回的对象数组的字符串表示形式转换为JavaScript中的对象数组 ajaxret = "[{a:'a', b:'b', c: 1},{a:'aa', b:'ab', c: 2},{a:'aaa', b:'bbb', c: 3}]" strResult = [{a:'a', b:'b', c: 1},{a:'aa', b:'ab', c: 2},{a:'aaa', b:'bbb', c: 3}] 将对象序列化为字符串时,应使用 var string = JSON.stri

我必须将从AJAX返回的对象数组的字符串表示形式转换为JavaScript中的对象数组

ajaxret = "[{a:'a', b:'b', c: 1},{a:'aa', b:'ab', c: 2},{a:'aaa', b:'bbb', c: 3}]"

strResult = [{a:'a', b:'b', c: 1},{a:'aa', b:'ab', c: 2},{a:'aaa', b:'bbb', c: 3}]

将对象序列化为字符串时,应使用

var string = JSON.stringify(object);
若要再次解析到对象,则可以使用

var object = JSON.parse(string);
在您的例子中,由于JSON无效,简单的方法是

var object = eval(string);
警告

  • eval
    是邪恶的
  • 仅当来源完全受信任时才使用它
  • 恶意源可以执行任意代码。太糟糕了
  • JSON.parse
    可能更快

如果它是有效的JSON(您的字符串不是),您可以使用。您是如何创建ajaxret的?为什么它返回一个无效的JSON字符串?如果您可以修复
ajaxret
,那么
JSON.parse()
将非常有用:)缺少什么使其成为有效的JSON字符串?键没有被引用。键和(字符串)值都需要用双引号引起来。如何创建此JSON?VB.Net用于创建用于加载jqGrid网格的colModel。它最初使用stringBuilder.AppendFormat在Page_Load事件中转换为简单的js数组。但是,当使用Ajax请求相同的字符串时,需要使用Javascript将其加载到页面中。无论如何,听起来似乎没有简单的方法可以做到这一点。我必须尝试引用这些键,看看原始页面Append.Format是否会转换它。检查是否有本机JSON函数。不要手动构建JSON。Eval(ajaxRet)工作正常。有多危险?ajaxRet完全由基于现有表格数据创建它的代码控制,该表格数据由使用OleDbCommand使用参数添加的用户输入填充。@RobGMiller如果
ajaxRet
包含用户输入,则可以在该用户的机器中
eval
它,但不能在其他用户的机器中。无论如何,最好使用JSON。