如何使用JavaScript将JSON字符串转换为JSON对象?

时间:2011-01-21 04:46:19

标签: javascript asp.net json serialization

我使用ASP.net的JavaScriptSerializer类来序列化我的对象并将其返回给客户端。如何使用JavaScript反序列化字符串?

4 个答案:

答案 0 :(得分:6)

如果你已经使用了jQuery,你会很高兴知道你可以用jQuery.parseJSON解析一个JSON字符串。

如果您不使用jQuery而不想使用jQuery,则可以始终使用由JSON.parse本身编写的精彩json_parseDouglas Crockford

如果没有必要,我会avoid eval()

答案 1 :(得分:3)

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

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

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

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

答案 2 :(得分:0)

非常琐碎 - 只是做

var x = eval(theString);
除了ASP.Net独特的DateTime序列化之外,

除了“真正的”JSON不支持并且是ASP.Net扩展之外,它应该得到所有内容。要使用ASP.Net的反序列化器,请确保在页面中包含<asp:ScriptManager>标记,然后调用

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

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

答案 3 :(得分:0)

非常标准,不那么安全:

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

jQuery做的很酷的事情,仍然不是很安全:

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