在做MVC項目時,難免會遇到Json序列化循環引用的問題,大致錯誤如下
錯誤1:序列化類型為“。。。”的對象時檢測到循環引用。
錯誤2:Self referencing loop detected for property '。。。' with type '。。。'. Path '[0].x[0]'.
以上錯誤是因為數據庫表關系引起的,比如一對一或多對多,如圖:

EF里面是這樣的,如圖:

解決方法:
步驟1:
-引用JSON.NET

步驟2:
-引用Newtonsoft.Json

步驟3:
-Json序列化
public JsonResult Contact() { var result = from score in context.Prarent select score; string json = JsonConvert.SerializeObject(result, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); return Json(new { data = json }, JsonRequestBehavior.AllowGet); }
返回的Json結果為:

