Читатель JSON ожидал значение, но нашел «функцию»

У меня есть коллекция, содержащая объект BsonJavascript.

{ 
    "Name" : "HourlyMP", 
    "MapFunction" : function(){
        var _id = this.srcip + " - " + this.hour
        var valueData = {
            ip: this.srcip,
            session: 1
        }
        emit(_id, valueData);
    } 
}

Как вы видите, значением поля «MapFunction» является BsonJavascript. Я могу успешно экспортировать и импортировать эти данные. Но когда я десериализую экспортированный json в BsonDocument, я получаю эту ошибку:

JSON reader was expecting a value but found 'function'

Кстати, я использую официальный драйвер С# 2.2, и мой код десериализации приведен ниже:

BsonSerializer.Deserialize<BsonDocument>(myjsonstring)

Изменить

Я определил функцию как строку, а затем преобразовал ее в BsonJavascriptFunction внутри своего кода. Это решило мою проблему. Спасибо за ответ


person Alisettar Huseynli    schedule 06.02.2016    source источник


Ответы (1)


Согласно документации, BsonSerializer.Deserialize<TNominalType>(String) десериализует JSON строка.

Функции недействительны в JSON.

person cbr    schedule 06.02.2016
comment
stackoverflow.com/questions/54201705/ - person eran otzap; 15.01.2019