2011-01-21 195 views
0

我使用012.net类的ASP.net序列化我的对象并将其返回给客户端。我怎样才能反序列化使用JavaScript的字符串?如何使用JavaScript将JSON字符串转换为JSON对象?

+0

强制链接:[json.org](http://json.org) – 2011-01-21 04:53:03

+0

“JSON对象”是一种矛盾的说法。它可以是对象,也可以是JSON字符串。两者都不是在同一时间。 – 2011-01-21 05:11:01

回答

0

相当琐碎 - 只是做

var x = eval(theString); 

应该得到除ASP.Net独特的系列化DateTime,这是不是“真正的” JSON支持,是一个ASP.Net扩展的一切。要使用ASP.Net的解串器,请确保您包括在页面中<asp:ScriptManager>标签,并呼吁

var x = Sys.Serialization.JavaScriptSerializer.deserialize(theString); 

将调用特殊的日期处理,可能让你更好的安全性。

+0

-1使用eval * without *显示替代选项。 – 2011-01-21 04:57:33

+0

@pst什么?替代方案就在那里 - 如果使用该替代方案,则会引发日期处理。 – 2011-01-21 05:16:21

0

非常标准的,不那么安全:

eval('(' + json + ')'); 

挺酷的东西,jQuery不会,仍然不是很安全:

(new Function('return ' + json))(); 
3

我打算提议... 什么都不做。这假设序列化结果返回页面和/或附加的HTML片段。

// In some JavaScript area somewhere in the ASP page 
var myObject = <%= JSONIfiedObjectResult %>; 

这工作是有效的,因为JSON是JavaScript的文字的一个子集。请注意,我没有在<%= %>附近引用引号。

如果反序列化是返回JSON等的AJAX调用的结果,那么请参阅Zack的答案。

相关问题