最近在做一个项目中用到了从后台将数据以JSON格式传到前台来处理,现在问题是前台能以JSON序列化后传到前台,也能用JS将接收到的JSON反序列化,但不知道如何将反序列化后的对象读出来.代码如下:
服务器端
[System.Web.Services.WebMethod]
public static string serial()
{
List<person> people = new List<person>
{new person{ID=1,name="scoot",sex="man"},
new person{ID=2,name="yako",sex="man1"}
};
JavaScriptSerializer jc = new JavaScriptSerializer(new SimpleTypeResolver());
string str_ser = jc.Serialize(people);
return str_ser;
}
}
public class person
{
public int ID { set; get; }
public String name { set; get; }
public string sex { set; get; }
}
客户端JS:
function read_data()
{
PageMethods.serial(CallBack);
}
function CallBack(result)
{
var serial=Sys.Serialization.JavaScriptSerializer;
var man=serial.deserialize(result);
document.write(被序列化的对象应该如何去读取?); }
------解决方案--------------------------------------------------------
json的格式是这样:
{ "名字": "Brett", "年龄":"22", "邮件": "brett@newInstance.com" }
JSON 是 JavaScript 原生格式,在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。可以创建一个新的 JavaScript 变量,然后将 JSON 格式的数据字符串直接赋值给它:
例如上面的:
var person = { "名字": "Brett", "年龄":"22", "邮件": "brett@newInstance.com" };
你上面的var man=serial.deserialize(result); 这行代码,已经是把Json转换为javascript的对象了。
alert(man.name)应该能显示出这个人的姓名。
------解决方案--------------------------------------------------------
up
------解决方案--------------------------------------------------------
参考
参考
------解决方案--------------------------------------------------------
var info2 = eval('('+info+')');
alert(info2);
$("div1").innerHTML = info2.param1;
$("div2").innerHTML = info2.param2;
$("div3").innerHTML = info2.param3;
------解决方案--------------------------------------------------------
顶顶顶UPUPUP
------解决方案--------------------------------------------------------