У меня есть строка, содержащая JSON. Единственное, что я знаю об этом JSON, это то, что оно действительно. Как превратить эту строку в BSON?Как преобразовать JSON в BSON с помощью Json.NET
ответ
BsonWriter
Newtonsoft.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);
}
}
Я думаю, что это будет делать трюк для вас
MongoDB.Bson.BsonDocument BSONDoc
= MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(json);
Вы также можете посмотреть на Serialize to BSON и C# - Converting JSON string to BSON document
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);
}
}
B ehold! Существует гораздо более простой способ сделать это:
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
.
В надежде, что это поможет вам.
- 1. Как преобразовать C# общий список в json с помощью json.net?
- 2. Как преобразовать datatable в строку json с помощью json.net?
- 3. BSON массив (де) сериализации с Json.NET
- 4. Как преобразовать строку в BSON?
- 5. Чтение JSON с помощью Json.NET
- 6. Как преобразовать строку в BSON с помощью драйвера MongoDB C++?
- 7. Как преобразовать строку json в bson в консоли MongoDB?
- 8. Ошибка сериализации простой строки для BSON с использованием NewtonSoft Json.Net
- 9. json преобразуется в BSON
- 10. Как десериализовать объект JSON с помощью json.net
- 11. Как сделать строку JSON с помощью Json.NET
- 12. Как разобрать этот JSON с помощью JSON.Net?
- 13. XML в JSON с помощью Json.NET
- 14. Добавить элементы в JSON с помощью Json.net
- 15. Преобразование словаря в JSON с помощью JSON.NET
- 16. Преобразовать тип варианта BSON
- 17. JSON.Net BSON сериализация неправильной обработки DateTimeOffset?
- 18. Как преобразовать BSON (двоичный JSON) в человекочитаемые данные с помощью Clojure?
- 19. Преобразование элемента Bson в строку/JSON
- 20. Как конвертировать POJO в BSON с помощью Google GSON?
- 21. Deserializing JSON с json.net
- 22. прилагая к объекту JSON с помощью Json.NET
- 23. C# для JSON сериализации с помощью Json.NET
- 24. Deserializing Instagram JSON с помощью Json.Net
- 25. Deserializing некоторый JSON с JSON.NET
- 26. Pymongo/bson: преобразовать объект python.cursor.Cursor в объект serializable/JSON
- 27. Синтаксический Json с помощью Vb.net Json.NET
- 28. Разбирать строку json с помощью json.net?
- 29. C# JSON Строка десериализации с помощью Json.NET
- 30. Как преобразовать объект MongoEngine Document в BSON?
Update для пользователей, возможно, хотят использовать это: 'BsonWriter 'устарел, проверьте мой ответ –