ASP.NET + jQuery,如何deSerialize JSON?

我想反序列化下面的JSON字符串,使用jQuery每个函数,但该项是未定义的。

下面是代码,但是,如果我使用asp.net 2.0 + Web服务并填充DataTable并传递给System.Web.Script.Serialization.JavaScriptSerializer类并返回这些JSON字符串。

    $(document).ready(function() { var $strJson = '['; $strJson += '{"Code":"a","Name":"Sam","Country":"US"},'; $strJson += '{"Code":"b","Name":"John","Country":"CN"},'; $strJson += '{"Code":"c","Name":"Mary","Country":"TW"}'; $strJson += ']'; $.each($strJson, function(key, item) { alert(item); if ( key == 0) return false; //Prevent infinity loop }); });     

您是否尝试过使用ASP.NET的Sys.Serialization.JavaScriptSerializer的反序列化方法?

 var result = Sys.Serialization.JavaScriptSerializer.deserialize($strJson); 

或者,有json_parse

 var result = json_parse($strJson, [reviver]) 

此方法解析JSON文本以生成对象或数组。 它可以抛出一个SyntaxErrorexception。

可选的reviver参数是一个可以过滤和转换结果的函数。 它接收每个键和值,并使用其返回值而不是原始值。 如果它返回它收到的内容,则不修改结构。 如果它返回undefined,则删除该成员。

这里的工作示例 。 这是代码

       Sandbox    

Example Page

只需使用内置的JavaScript eval方法:

 $.each(eval('(' + $strJson + ')'), function(key, item) { 

顺便说一句,您不需要在JavaScript中使用$ sign for variables。