Reputation: 2185
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
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
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