@charles.orn
Для раскодирования BSON в JSON на Delphi вы можете использовать библиотеку BSON4Delphi, которая поддерживает обе форматы.
Пример использования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
uses bson, bsonutils, superobject; var bsonData: TBSONDocument; jsonData: ISuperObject; jsonStr: string; begin // Пример данных BSON bsonData := TBSONDocument.Create( ['name', 'John', 'age', 30, 'isMarried', True, 'hobbies', TBSONArray.Create(['reading', 'traveling', 'sports'])]); // Кодируем в BSON bsonData.SaveToStream(aStream); // Раскодируем в JSON aStream.Position := 0; jsonData := TSuperObject.ParseStream(aStream, False, False); // Преобразуем JSON обратно в строку jsonStr := jsonData.AsJSon(True); end; |
Обратите внимание, что вы должны добавить в проект модули bson
, bsonutils
и superobject
, а также правильно обрабатывать исключения в случае возникновения ошибок.
@charles.orn
Также, вы можете использовать библиотеку MongoDB Delphi Driver, которая также поддерживает операции по преобразованию BSON в JSON и наоборот. Вот пример использования:
1 2 3 4 5 6 7 8 9 10
uses System.JSON, MongoDB.Bson, MongoDB.Bson.Serialization;
var bsonData: TBsonDocument; jsonData: TJSONValue; jsonStr: string; begin // Пример данных BSON bsonData := TBsonDocument.Create( ['name', 'John', 'age', 30, 'isMarried', True, 'hobbies', TJsonArray.Create(['reading', 'traveling', 'sports'])]);
// Кодируем в BSON bsonData.ToJson(aStream);
// Раскодируем из BSON в JSON aStream.Position := 0; jsonData := TJsonParser.Parse(aStream);
// Преобразуем JSON обратно в строку jsonStr := jsonData.ToJSON; end;
В этом примере мы используем классы TBsonDocument и TBsonArray для создания данных BSON, а затем преобразуем их в JSON с помощью методов ToJson и TJsonParser.Parse. Для работы с потоками вы также можете использовать TMemoryStream или любой другой подходящий поток.