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。