【问题标题】:Linq list of objects to json对象的Linq列表到json
【发布时间】:2016-01-22 18:49:35
【问题描述】:

我的目标是进行 linq 查询并将其转换为 Json,以便从 Api 返回。

查询:

var results = _context.User.ToList();

此列表有多个具有多个属性的用户,例如用户名、名字、姓氏,但我不知道如何将它们作为 json 返回...

我需要将它们转换为 json 对象

return Json(results, JsonRequestBehavior.AllowGet);

编辑

每次运行代码时都会出现循环引用异常?

【问题讨论】:

  • 你写的那行不行?
  • return Json(new {result = results }, JsonRequestBehavior.AllowGet);
  • 然后我遇到了一个循环引用异常......不知道为什么
  • 那么,您正在序列化的对象是否包含循环引用?我们不能在没有看到数据的情况下告诉您。
  • 我有一个“角色”列,它引用另一个表,它是一个外键,这是否会发生我的异常?

标签: c# asp.net json api http-get


【解决方案1】:

您的数据中可能存在循环引用。尝试只获取您需要的字段:

var results = _context.User.Select(u => new { u.FirstName, u.LastName }).ToList();

如果你想在另一个表中指向用户,那么你必须采取一些措施来防止循环引用。

【讨论】:

  • ToList() 也没有任何意义。要么留下它,让 Json() 方法直接在可枚举上工作,而不先将它加载到列表中,或者 awaitToListAsync() 上,这样线程就不必阻塞从数据库中检索。
猜你喜欢
  • 2011-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
相关资源
最近更新 更多