Javascript:如何将数组的AJAX返回字符串表示形式转换为数组
我必须将从AJAX返回的对象数组的字符串表示形式转换为JavaScript中的对象数组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
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
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。