日期:2014-05-17  浏览次数:20457 次

100分求JAVASCRIPT如何读取反序列化JSON后的对象
最近在做一个项目中用到了从后台将数据以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
------解决方案--------------------
探讨
谢谢楼上的帮助,不过我从后台传过来的对象是List <person> people = new List <person>
{new person{ID=1,name="scoot",sex="man"},
new person{ID=2,name="yako",sex="man1"}
};
请问我如何读取每一个person对象的各个属性?