如何在 C# EF 核心 web api 中将列表转换为 Json

Posted

技术标签:

【中文标题】如何在 C# EF 核心 web api 中将列表转换为 Json【英文标题】:How to convert a List to Json in c# EF core web api 【发布时间】:2020-05-05 05:41:51 【问题描述】:

我无法转换为返回 json 而不是列表。我尝试使用 Newtonsoft.Json,但没有任何效果。要么报错,要么返回null。

[HttpGet]
        public IActionResult GetUsers()
        
            using (var context = new ProjectContext())
            

                var MyEntity = context.User.ToList();

                return MyEntity; 
            
        

用户模型

using System;
using System.Collections.Generic;

namespace Project.Models

    public partial class User
    
        public User()
        
            Order= new HashSet<Order>();
        

        public int IdUser  get; set; 
        public string Name get; set; 
        public string Tel get; set; 
        public float? Stars get; set; 

        public virtual SellerSeller  get; set; 
        public virtual ICollection<Order> Order get; set; 
    

MyEntity 返回的类型是 System.Collections.Generic.List

【问题讨论】:

你能告诉我们返回 JSON,MyEntity 的类型及其模型 先确保MyEntity 不为空,然后使用return Json(new date = MyEntity , Status = "success") context.User 是否返回了一些东西? MyEntity 的价值是什么 当你使用 newtonsoft 时,列出的对象是否在其属性上具有序列化属性? [JsonProperty] @JamesLoForti 我用var json = jsonSerialiser.Serialize (aList) ; 做到了。由于返回了错误的方法,我给出了一个错误。菜鸟错误。 【参考方案1】:

试试这个。

[HttpGet]
    public IActionResult GetUsers()
    
        using (var context = new ProjectContext())
        

            var MyEntity = context.User.ToList();

            return Ok(MyEntity); 
        
    

【讨论】:

【参考方案2】:

使用以下内容作为Json返回

return Json(new  data = MyEntity,  Status = "Success" , JsonRequestBehavior.AllowGet);

【讨论】:

我收到此错误“无法将类型'System.Web.Mvc.JsonResult'隐式转换为'System.Collections.Generic.IEnumerable'。存在显式转换(你错过了演员表吗?)

以上是关于如何在 C# EF 核心 web api 中将列表转换为 Json的主要内容,如果未能解决你的问题,请参考以下文章

带有 EF Core 更新实体的 ASP.Net 核心 Web Api 如何

如何在 vscode 中将 `System.Web.Extensions` 程序集添加到 .net 核心项目

C# EF6 使用 Unity 对一个上下文进行多次异步调用 - Asp.Net Web Api

基于.net EF6 MVC5+WEB Api 的Web系统框架总结-Web前端页面

无法反序列化 xml 数组以列出 web api 模型 c#

如何从分页的 ef 核心查询中获取可用的总行数