JSONを含む文字列があります。このJSONについて私が知っている唯一のことは、それが有効であることです。この文字列をBSONに変換する方法は?
Newtonsoft.Json
のBsonWriter
は廃止されました。
Json.NET BSON
という新しいnuget-packageを追加し(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);
}
}
これでうまくいくと思います
MongoDB.Bson.BsonDocument BSONDoc
= MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(json);
Serialize to BSON および C#-JSON文字列からBSONドキュメントへの変換 も確認できます。
見よ!これを行うにはもっと簡単な方法があります:
BsonDocument doc = BsonDocument.Parse("{\"your\": \"json\", \"string\": \"here\"}");
プロジェクトでjson
を使用しているときに、json
をbson
ドキュメントに変換する簡単で便利な方法があることに気付きました。
string json = "{\"Name\":\"Movie Premiere\"}";
BsonDocument document = BsonDocument.Parse(json);
これで、どこでもdocument
をbsonとして使用できます。
Note-document
データベースに挿入するために、このMongoDb
を使用しています。
これがあなたを助けることを願っています。
https://www.nuget.org/packages/Newtonsoft.Json
PM>インストールパッケージ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);
}
}