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
2012-08-27 19:15
This blog is frozen. No new comments or edits allowed.
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
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