2014-09-09 3 views
4

Я пытаюсь преобразовать простую строку в BSON, но я постоянно получаю эту ошибку;Ошибка сериализации простой строки для BSON с использованием NewtonSoft Json.Net

«Ошибка значение написания строк. BSON должен начинаться с объекта или массива. Путь»

Могу ли я не сериализации «String» или простой тип для BSON с помощью Json.NET? если не почему?

, например.

using (var ms = new MemoryStream()) 
{ 
    using (var bw = new BsonWriter(ms)) 
    { 
     var serializer = new JsonSerializer(); 

     serializer.Serialize(bw, "Testing123"); 

     bw.Flush(); 
    } 

    return ms.ToArray(); 
} 

ответ

5

Quoted от bsonspec.org

BSON представляет собой бинарный формат, в котором ноль или более пар ключ/значение являются , хранящуюся как единое целое. Мы называем это лицо документом .

Это означает, что действительный BSON должен быть только в форме пары ключ/значение, поэтому невозможность записи простого значения, такого как строка или целое, как документ BSON.

Для почему массивы могут пройти как полный BSON документ, вот описание цитата из того же источника в Notes разделе:

Array - Документ для массива является нормальным BSON документ с целого значения для ключей, начиная с 0 и продолжая последовательно. Например, массив ['red', 'blue'] был бы закодирован в качестве документа {'0': 'red', '1': 'blue'}. Ключи должны быть в возрастающем цифровом порядке.

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