BSON data
BSON is a binary-encoded serialization of JSON-like documents. BSON is designed to be lightweight, traversable, and efficient.
Download Newtonsoft.Json.dll. from codeplex
Add references
- using Newtonsoft.Json;
- using Newtonsoft.Json.Bson;
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BD { get; set; }
}
private void BsonSerialization()
{
Person pers = new Person()
{ BD = DateTime.Now, FirstName = "myFN", LastName = "myLN" };
MemoryStream myStream = new MemoryStream();
JsonSerializer objSerialize = new JsonSerializer();
BsonWriter writer = new BsonWriter(myStream);
objSerialize.Serialize(writer, pers);
MessageBox.Show(BitConverter.ToString(myStream.ToArray()));
myStream.Seek(0, SeekOrigin.Begin);
BsonReader reader = new BsonReader(myStream);
Person deserializedPerson = objSerialize.Deserialize<Person>(reader);
}
Now, On an ASP.NET MVC application,
Add this custom BSONResult
using Newtonsoft.Json;
using Newtonsoft.Json.Bson;
public class CustomBSONResult : ActionResult
{
private object _myobj;
public CustomBSONResult(object data)
{
this._myobj = data;
}
public override void ExecuteResult(ControllerContext context)
{
HttpContextBase httpContextBase = context.HttpContext;
httpContextBase.Response.Buffer = true;
httpContextBase.Response.Clear();
httpContextBase.Response.ContentType = "application/bson";
JsonSerializer serializer = new JsonSerializer();
BsonWriter bWriter = new BsonWriter(httpContextBase.Response.OutputStream);
serializer.Serialize(bWriter, _myobj);
httpContextBase.Response.Write(bWriter);
}
}
Create a Person Controller
public class PersonController : Controller
{
public ActionResult Index()
{
return View();
}
public CustomBSONResult bdata()
{
Person pers = new Person() { BD = DateTime.Now, FirstName = "myFN", LastName = "myLN" };
return new CustomBSONResult(pers);
}
public JsonResult JsonData()
{
Person pers = new Person() { BD = DateTime.Now, FirstName = "myFN", LastName = "myLN" };
return Json(pers, JsonRequestBehavior.AllowGet);
}
}
now check the outputs
localhost:???/Person/jsondata
localhost:???/Person/bdata
Json data
{"FirstName":"myFN","LastName":"myLN","BD":"\/Date(1346118761805)\/"}
bson data
8 FirstName myFN LastName myLN BD eäîj9 Newtonsoft.Json.Bson.BsonWriterv