Public · Protected · Private
BSON data
Type: Public  |  Created: 2012-08-27  |  Frozen: Yes
« Previous Public Blog Next Public Blog »
Comments
  • BSON is a bin­ary-en­coded seri­al­iz­a­tion of JSON-like doc­u­ments. 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); 
    }

    2012-08-27 18:40
  • 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

    2012-08-27 19:15
This blog is frozen. No new comments or edits allowed.