我通过官方的C#驱动程序和ASP使用MongoDB.NET MVC网站.

我有以下C#模型:

public class Contact
{
    public ObjectId Id { get; set; }
    public string Name { get; set; }
    public DateTime DateAdded { get; set; }
}

当从MongoDB中提取并通过MVC序列化为JSON字符串时,如下所示:

{
    "_id"  : ObjectId("52eaad4839b60812fca4bf28"),
    "Name": "Joe Blow",
    "DateAdded" : ISODate("2014-01-30T19:51:35.977Z")
}

当我试图通过JSON将其从JSON字符串转换为浏览器上的Javascript对象时.parse(),我得到以下错误:

Uncaught SyntaxError: Unexpected token I

这是因为ISODate(...)不是有效的JSON

ObjectId()也不是有效的JSON,但我的处理方式是在客户端解析JSON字符串之前,对JSON字符串执行string.replace().我也考虑过为ISODate()做同样的事情,但感觉有点太粗糙了.

我能做些什么而不用在客户端使用正则表达式吗?也许是MongoDB驱动的什么?

推荐答案

我认为您需要进一步调整JSON序列化程序.试试这个:

var jsonWriterSettings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict };
Console.WriteLine(document.ToJson(jsonWriterSettings));

Mongodb相关问答推荐

MongoDB合并按键更新值的对象数组

如何在MongoDB中对两个数组进行分组?

MongoDB MQL,将列表一分为二,仅获取唯一值

根据参考图计算子文档列表的最大值

Mongo查找条件:不存在

mongo.lock 文件有什么用?

NodeJS + MongoDB:使用 findOne () 从集合中获取数据

字段类型在 MongoDB 索引中是否重要?

spring-data-mongo - 可选查询参数?

在 MongoDB 中按条件分组

MEAN 堆栈文件上传

Mongo: query by key one level deep

没有参考选项的mongoose填充字段

如何防止MongoDB在查找文档时返回对象ID?

MongoDB 中的多个 $inc 更新

如何将转储文件夹导入 mongodb 数据库?

为什么 Mongo 提示会使查询运行速度提高 10 倍?

MongoDB 引用的最佳实践

有没有办法执行更新操作的dry run?

mongoose(mongodb)别名_id字段