SleeplessKnight
SleeplessKnight

Reputation: 2185

how to bulid a json object in server client with C#

I provide data in server ,and want to send it to client,I use ashx with method ProcessRequest.

    public override void ProcessRequest ( HttpContext context )
    {
       string html="";
       //do sth for get html
         context.Response.Write ( html.ToString() );
    }

in client ,I render page with ajax. so, I want get a json object in client, how to do it? how to bulid a json in sever side?

Upvotes: 0

Views: 1484

Answers (3)

Soony
Soony

Reputation: 913

If .net 2.0, you can try litjson

Upvotes: 1

Ivan Bianko
Ivan Bianko

Reputation: 1769

Use JSON serialization in .net version >= 3.5. A little example:

[DataContract]
class Student
{
  [DataMember]
  public string Name { get; set; }
  [DataMember]
  public int Age { get; set; }
}

static void Main(string[] args)
{
  var serializer = new DataContractJsonSerializer(typeof (Student));
  var student = new Student {Name = "Jonh", Age = 18};
  var stream = new MemoryStream();
  serializer.WriteObject(stream, student);
  var jsonString = Encoding.Default.GetString(stream.ToArray());

}

You can find DataContractJsonSerializer in System.Runtime.Serialization.dll

Upvotes: 2

Pashec
Pashec

Reputation: 23289

You can use DataContractJsonSerializer to achieve this. Define your response

[DataContract]
class Response
{
    [DataMember]
    private string Content { get; set; }
}

Then serialize your html-response into output stream:

Response response = new Response();
response.Content = html.ToString();
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Response));
serializer.WriteObject(context.Response.Stream,response);

Upvotes: 1

Related Questions