如何在响应时将C#类序列化为Javascript

本文关键字:序列化 Javascript 响应 | 更新日期: 2023-09-27 18:27:19

我有一个这样的类:

public class Person
{
    public string Address { get; set; }
    public string Name { get; set; }
    public string Surname { get; set; }
    public Person()
    {
    }
}

在服务器端,我填充这个类的一些实例,并将它们添加到IEnumerable<Person>中。现在,在客户端,我希望以javascript(json?)的形式接收这个集合,就像web服务和序列化一样。([Serializable()]

在.NET 3.5中发出Web表单请求后,如何在正常响应中执行此操作?

如何在响应时将C#类序列化为Javascript

您可以使用Json.net:

List<Person> persons = new List<Person>();
persons.Add(new Person() { Address = "5 Foo Street", Name = "Fed", Surname = "Fish" });
persons.Add(new Person() { Address = "10 Bar Road", Name = "Joe", Surname = "Smith" });
string output = JsonConvert.SerializeObject(persons);

您可以使用JavaScriptSerializer将对象序列化为JSON。

或者,更好的是,创建一个用ScriptService标记的WebService。

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class SimpleWebService : System.Web.Services.WebService 
{
    [WebMethod]
    public string GetServerTime() 
    {
        string serverTime =
            String.Format("The current time is {0}.", DateTime.Now);
        return serverTime;
    }
}