2015-11-13 3 views

ответ

3

BsonWriterNewtonsoft.Json является устаревшим.

Вам нужно добавить новый NuGet-пакет под названием Json.NET BSON (только поиск newtonsoft.json.bson) и работать с BsonDataWriter и BsonDataReader вместо BsonWriter и BsonReader:

public static string ToBson<T>(T value) 
{ 
    using (MemoryStream ms = new MemoryStream()) 
    using (BsonDataWriter datawriter = new BsonDataWriter(ms)) 
    { 
     JsonSerializer serializer = new JsonSerializer(); 
     serializer.Serialize(datawriter, value); 
     return Convert.ToBase64String(ms.ToArray()); 
    } 

} 

public static T FromBson<T>(string base64data) 
{ 
    byte[] data = Convert.FromBase64String(base64data); 

    using (MemoryStream ms = new MemoryStream(data)) 
    using (BsonDataReader reader = new BsonDataReader(ms)) 
    { 
     JsonSerializer serializer = new JsonSerializer(); 
     return serializer.Deserialize<T>(reader); 
    } 
} 
2

https://www.nuget.org/packages/Newtonsoft.Json

PM> Install-Package Newtonsoft.Json -версия 7.0 .1

using Newtonsoft.Json.Bson; 
using Newtonsoft.Json; 

class Program 
    { 
     public class TestClass 
     { 
      public string Name { get; set; } 
     } 

     static void Main(string[] args) 
     { 
      string jsonString = "{\"Name\":\"Movie Premiere\"}"; 
      var jsonObj = JsonConvert.DeserializeObject(jsonString); 

      MemoryStream ms = new MemoryStream(); 
      using (BsonWriter writer = new BsonWriter(ms)) 
      { 
       JsonSerializer serializer = new JsonSerializer(); 
       serializer.Serialize(writer, jsonObj); 
      } 

      string data = Convert.ToBase64String(ms.ToArray()); 

      Console.WriteLine(data); 
     } 
    } 
+0

Update для пользователей, возможно, хотят использовать это: 'BsonWriter 'устарел, проверьте мой ответ –

3

B ehold! Существует гораздо более простой способ сделать это:

BsonDocument doc = BsonDocument.Parse("{\"your\": \"json\", \"string\": \"here\"}"); 
2

при использовании json в моем проекте я заметил, что есть простой и сладкий способ преобразования json в bson документ.

string json = "{\"Name\":\"Movie Premiere\"}"; 
BsonDocument document = BsonDocument.Parse(json); 

сейчас вы можете использовать document как bson в любом месте.

Note- Я использую этот document для вставки в базу данных MongoDb.

В надежде, что это поможет вам.

Смежные вопросы