我在玩MongoDB並且有一個帶有mongodb ObjectId的對象。當我使用.NET Json()方法將其序列化時,一切都很好(但日期很糟糕!)序列化Mongo時出現JSON.NET轉換錯誤ObjectId
如果我使用JSON.NET串行器嘗試此操作,它會在嘗試序列化ObjectID時給我一個InvalidCastException
任何想法最新情況發生以及我如何解決這個問題?
using MongoDB.Driver;
using MongoDB.Bson;
using Newtonsoft.Json;
//this is a route on a controller
public string NiceJsonPlease()
{
var q = new TestClass();
q.id = new ObjectId();
q.test = "just updating this";
return JsonConvert.SerializeObject(q);
}
//simple test class
class TestClass
{
public ObjectId id; //MongoDB ObjectID
public string test = "hi there";
}
Exception Details: System.InvalidCastException: Specified cast is not valid.
如果更改了控制器的方法使用附帶的.NET,它的工作原理串行OK(但是,這個人給醜陋的日期,blugh)
public JsonResult NiceJsonPlease()
{
var q = new TestClass();
q.id = new ObjectId();
q.test = "just updating this";
return Json(q, JsonRequestBehavior.AllowGet);
}
啊,老的Json日期問題:http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx – Liam
@Liam喜利亞姆,我居然讀了博客今天早些時候有幾分,我的理由問這個問題。 JSON.NET爲我提供了更好的日期,但是如果我在模型中包含MongoDB ObjectID並嘗試使用JSON.NET對其進行序列化,則會出錯。 – Keeno
你可以顯示你的代碼嗎? – Liam