1

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'

ところで、私は公式の C# 2.2 ドライバーを使用しており、逆シリアル化コードは以下のとおりです。

BsonSerializer.Deserialize<BsonDocument>(myjsonstring)

編集

関数を文字列として定義し、コード内で BsonJavascriptFunction に変換しました。これで私の問題は解決しました。返信ありがとう

4

1 に答える 1

3

ドキュメントによると、 JSONBsonSerializer.Deserialize<TNominalType>(String)文字列を逆シリアル化します。

関数は JSON では無効です。

于 2016-02-06T21:29:41.133 に答える