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

时间:2012-03-08 13:58:11

标签: c# javascript .net webforms

我有一个这样的课程:

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中的webform请求之后,如何在正常响应中执行此操作?

2 个答案:

答案 0 :(得分:2)

您可以使用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);

答案 1 :(得分:1)

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

或者,更好的是,创建一个标有WebServiceScriptService

[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;
    }
}