我正在通过带有 ASP.NET MVC 网站的官方 C# 驱动程序使用 MongoDB。
我有以下 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.parse() 将其从 JSON 字符串转换为浏览器上的 Javascript 对象时,我收到以下错误:
Uncaught SyntaxError: Unexpected token I
这是因为 ISODate(...)
不是有效的 JSON
ObjectId()
也不是有效的 JSON,但我处理的方式是在 JSON 字符串之前简单地执行 string.replace()
在客户端解析它。我考虑为 ISODate()
做同样的事情,但感觉有点太老套了。
有没有什么我可以在客户端不使用正则表达式的情况下做的?也许来自 MongoDB 驱动程序?
最佳答案
我认为您需要进一步调整 JSON 序列化程序。试试这个:
var jsonWriterSettings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict };
Console.WriteLine(document.ToJson(jsonWriterSettings));
关于c# - 尝试解析序列化 JSON 字符串时处理 MongoDB 的 ISODate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21466446/