私はMongoDBで遊んでいて、mongodb ObjectIdを持つオブジェクトを持っています。これを .NET Json() メソッドでシリアル化すると、すべて問題ありません (ただし、日付はひどいものです!)
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 に同梱されているシリアライザーを使用するようにコントローラーのメソッドを変更すると、正常に動作します (ただし、これは日付が不格好になります)。
public JsonResult NiceJsonPlease()
{
var q = new TestClass();
q.id = new ObjectId();
q.test = "just updating this";
return Json(q, JsonRequestBehavior.AllowGet);
}