2015-11-13 62 views

回答

3

Newtonsoft.JsonBsonWriter已過時。

您需要添加一個新的NuGet包稱爲Json.NET BSON(只搜索newtonsoft.json.bson),並與BsonDataWriterBsonDataReader代替BsonWriterBsonReader工作:

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>安裝,包裝Newtonsoft.Json -Version 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

更新用戶可能想用這個:'BsonWriter '已經過時了,請查看我的答案 –

3

B ehold!還有一個更簡單的方法來做到這一點:

BsonDocument doc = BsonDocument.Parse("{\"your\": \"json\", \"string\": \"here\"}"); 
2
而在項目中,我注意到,有對 json轉換爲 bson文檔簡單而甜蜜的方式使用 json

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

現在您可以在任何地方使用document作爲bson。

注 -我正在使用此document插入到MongoDb數據庫中。

希望希望這會對你有幫助。

相關問題