59 lines
1.7 KiB
C#
59 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Newtonsoft.Json.Bson;
|
|
|
|
namespace Newtonsoft.Json.Tests.Documentation.Samples.Bson
|
|
{
|
|
public class DeserializeFromBsonCollection
|
|
{
|
|
#region Types
|
|
public class Event
|
|
{
|
|
public string Name { get; set; }
|
|
public DateTime StartDate { get; set; }
|
|
}
|
|
#endregion
|
|
|
|
public void Example()
|
|
{
|
|
//IList<Event> e = new List<Event>
|
|
// {
|
|
// new Event {StartDate = new DateTime(2013, 3, 31), Name = "Easter"}
|
|
// };
|
|
//MemoryStream ms1 = new MemoryStream();
|
|
//using (BsonWriter writer = new BsonWriter(ms1))
|
|
//{
|
|
// JsonSerializer serializer = new JsonSerializer();
|
|
|
|
// serializer.Serialize(writer, e);
|
|
//}
|
|
|
|
//string ss = Convert.ToBase64String(ms1.ToArray());
|
|
//Console.WriteLine(ss);
|
|
|
|
#region Usage
|
|
string s = "MQAAAAMwACkAAAACTmFtZQAHAAAARWFzdGVyAAlTdGFydERhdGUAgDf0uj0BAAAAAA==";
|
|
byte[] data = Convert.FromBase64String(s);
|
|
|
|
MemoryStream ms = new MemoryStream(data);
|
|
using (BsonReader reader = new BsonReader(ms))
|
|
{
|
|
reader.ReadRootValueAsArray = true;
|
|
|
|
JsonSerializer serializer = new JsonSerializer();
|
|
|
|
IList<Event> events = serializer.Deserialize<IList<Event>>(reader);
|
|
|
|
Console.WriteLine(events.Count);
|
|
// 1
|
|
|
|
Console.WriteLine(events[0].Name);
|
|
// Easter
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
} |